mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Model type expressions as regions (#4698)
This is a precondition for enabling the new pattern-matching subsystem to support binding patterns that have `if` expressions in the type position. --------- Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
co-authored by
Richard Smith
parent
95c9634c60
commit
a112cbde5c
+14
-15
@@ -152,11 +152,13 @@ fn D() {}
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc5_9: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc5_9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc5_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc5_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %b.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc5: type = splice_block %i32.loc5_9 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc5_9: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc5_9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: %i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
@@ -167,14 +169,16 @@ fn D() {}
|
||||
// CHECK:STDOUT: %return.patt: %struct_type.c = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %struct_type.c = out_param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc6_14.1: %tuple.type.1 = tuple_literal (%i32.loc6_10)
|
||||
// CHECK:STDOUT: %.loc6_14.2: type = converted %.loc6_14.1, constants.%tuple.type.2 [template = constants.%tuple.type.2]
|
||||
// CHECK:STDOUT: %int_32.loc6_25: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc6_25: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c]
|
||||
// CHECK:STDOUT: %c.param: %tuple.type.2 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc6_14.3: type = splice_block %.loc6_14.2 [template = constants.%tuple.type.2] {
|
||||
// CHECK:STDOUT: %int_32.loc6_10: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc6_10: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc6_14.1: %tuple.type.1 = tuple_literal (%i32.loc6_10)
|
||||
// CHECK:STDOUT: %.loc6_14.2: type = converted %.loc6_14.1, constants.%tuple.type.2 [template = constants.%tuple.type.2]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %c: %tuple.type.2 = bind_name c, %c.param
|
||||
// CHECK:STDOUT: %return.param: ref %struct_type.c = out_param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref %struct_type.c = return_slot %return.param
|
||||
@@ -283,17 +287,10 @@ fn D() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc6_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc6_9.2: type = converted %.loc6_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %a.var: ref %empty_tuple.type = var a
|
||||
// CHECK:STDOUT: %a: ref %empty_tuple.type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %b.var: ref %i32 = var b
|
||||
// CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int_32.loc8: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc8: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [template = constants.%struct_type.c]
|
||||
// CHECK:STDOUT: %c.var: ref %struct_type.c = var c
|
||||
// CHECK:STDOUT: %c: ref %struct_type.c = bind_name c, %c.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -368,11 +365,13 @@ fn D() {}
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [template = constants.%A] {} {}
|
||||
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [template = constants.%B] {} {
|
||||
// CHECK:STDOUT: %int_32.loc23_9: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc23_9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc23_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc23_17: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %b.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc23: type = splice_block %i32.loc23_9 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc23_9: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc23_9: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: %i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
|
||||
@@ -242,8 +242,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc4_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc4_9.2: type = converted %.loc4_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -278,8 +276,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc10_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -315,8 +311,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %.loc10_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -354,8 +348,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc4_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc4_9.2: type = converted %.loc4_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -390,8 +382,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc10_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -427,8 +417,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %.loc10_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -466,8 +454,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc4_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc4_9.2: type = converted %.loc4_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: %Forward.decl: %Forward.type = fn_decl @Forward [template = constants.%Forward] {} {}
|
||||
@@ -506,8 +492,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc10_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -543,8 +527,6 @@ private fn Redecl() {}
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Test.import = import Test
|
||||
// CHECK:STDOUT: %.loc9_9.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc9_9.2: type = converted %.loc9_9.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %f.var: ref %empty_tuple.type = var f
|
||||
// CHECK:STDOUT: %f: ref %empty_tuple.type = bind_name f, %f.var
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -39,8 +39,8 @@ fn F(n: C) {}
|
||||
// CHECK:STDOUT: %n.patt: %C = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: %C = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %n.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %n: %C = bind_name n, %n.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+12
-6
@@ -111,18 +111,22 @@ fn K() -> {} { return {}; }
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc19_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc19_10.2: type = converted %.loc19_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %x.param: %empty_tuple.type = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc19_10.3: type = splice_block %.loc19_10.2 [template = constants.%empty_tuple.type] {
|
||||
// CHECK:STDOUT: %.loc19_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc19_10.2: type = converted %.loc19_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc21_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc21_10.2: type = converted %.loc21_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %x.param: %empty_tuple.type = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc21_10.3: type = splice_block %.loc21_10.2 [template = constants.%empty_tuple.type] {
|
||||
// CHECK:STDOUT: %.loc21_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc21_10.2: type = converted %.loc21_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl.loc29: %.type.2 = fn_decl @.2 [template = constants.%.2] {} {}
|
||||
@@ -130,9 +134,11 @@ fn K() -> {} { return {}; }
|
||||
// CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x
|
||||
// CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc31_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc31_10.2: type = converted %.loc31_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %x.param: %empty_tuple.type = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc31_10.3: type = splice_block %.loc31_10.2 [template = constants.%empty_tuple.type] {
|
||||
// CHECK:STDOUT: %.loc31_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc31_10.2: type = converted %.loc31_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %x: %empty_tuple.type = bind_name x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl.loc36: %.type.3 = fn_decl @.3 [template = constants.%.3] {
|
||||
|
||||
@@ -35,8 +35,5 @@ fn F() {}
|
||||
// CHECK:STDOUT: fn @F() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !.loc18:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+31
-27
@@ -194,32 +194,32 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_name a, %a.param.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc8: %Foo.type = fn_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc8: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc8: %C = bind_name a, %a.param.loc8
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl.loc10: %Bar.type = fn_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc10: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc10: %C = bind_name a, %a.param.loc10
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl.loc11: %Bar.type = fn_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc11: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc11: %C = bind_name a, %a.param.loc11
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -262,16 +262,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc6: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc6: %C = bind_name a, %a.param.loc6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_name a, %a.param.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -311,16 +311,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.1] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -360,16 +360,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc6: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc6: %C = bind_name a, %a.param.loc6
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type = fn_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_name a, %a.param.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -413,16 +413,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -471,16 +471,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.1 [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.1 [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl: %Bar.type = fn_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.2 [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.2 [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -526,16 +526,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.1] {
|
||||
// CHECK:STDOUT: %b.patt: %C = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: %C = value_param_pattern %b.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %b.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %b: %C = bind_name b, %b.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -580,16 +580,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.1] {
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -636,16 +636,16 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt.loc7_8.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_8.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc7_8.1, runtime_param<invalid> [symbolic = %a.patt.loc7_8.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc7_8.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_8.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.1] {
|
||||
// CHECK:STDOUT: %a.patt.loc15_8.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_8.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt.loc15_8.1, runtime_param<invalid> [symbolic = %a.patt.loc15_8.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.loc15_8.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_8.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -761,8 +761,8 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -807,8 +807,8 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %C = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %C = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a.param: %C = value_param runtime_param0
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %a: %C = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -847,19 +847,23 @@ fn Foo(a: const (const C)) {}
|
||||
// CHECK:STDOUT: %a.patt: %const = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %const = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %const: type = const_type %C [template = constants.%const]
|
||||
// CHECK:STDOUT: %a.param: %const = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc6: type = splice_block %const [template = constants.%const] {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %const: type = const_type %C [template = constants.%const]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %const = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [template = constants.%.1] {
|
||||
// CHECK:STDOUT: %a.patt: %const = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %const = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %const.loc17_18: type = const_type %C [template = constants.%const]
|
||||
// CHECK:STDOUT: %const.loc17_11: type = const_type %const [template = constants.%const]
|
||||
// CHECK:STDOUT: %a.param: %const = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc17: type = splice_block %const.loc17_11 [template = constants.%const] {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %const.loc17_18: type = const_type %C [template = constants.%const]
|
||||
// CHECK:STDOUT: %const.loc17_11: type = const_type %const [template = constants.%const]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %const = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -37,9 +37,11 @@ fn Foo(a: i32) {}
|
||||
// CHECK:STDOUT: %a.patt: %i32 = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc11: type = splice_block %i32 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -37,9 +37,11 @@ fn Foo(a: i32,) {}
|
||||
// CHECK:STDOUT: %a.patt: %i32 = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: %i32 = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc11: type = splice_block %i32 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -39,13 +39,17 @@ fn Foo(a: i32, b: i32) {}
|
||||
// CHECK:STDOUT: %b.patt: %i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: %i32 = value_param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_11: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc11_11: type = splice_block %i32.loc11_11 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_11: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: %i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %.loc11_19: type = splice_block %i32.loc11_19 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: %i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -39,13 +39,17 @@ fn Foo(a: i32, b: i32,) {}
|
||||
// CHECK:STDOUT: %b.patt: %i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: %i32 = value_param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_11: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %.loc11_11: type = splice_block %i32.loc11_11 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_11: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: %i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %.loc11_19: type = splice_block %i32.loc11_19 [template = constants.%i32] {
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %i32.loc11_19: type = class_type @Int, @Int(constants.%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %b: %i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user