mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Model the return slot as an output parameter (#4432)
Also fix `Param` insts to have meaningful names in pretty-printing, to help clarify relationship with return slot.
This commit is contained in:
+1
-1
@@ -39,7 +39,7 @@ interface I {
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+9, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+15, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -58,12 +58,12 @@ interface I {
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref.1: %ImplicitAs.type.1 = import_ref Core//prelude/operators/as, inst+46, loaded [template = constants.%ImplicitAs]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Core//prelude/operators/as, inst+52, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: @ImplicitAs.%.1 (%.3) = import_ref Core//prelude/operators/as, inst+71, loaded [symbolic = @ImplicitAs.%.2 (constants.%.7)]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Core//prelude/operators/as, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Core//prelude/operators/as, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Core//prelude/operators/as, inst+64, unloaded
|
||||
// CHECK:STDOUT: %import_ref.1: %ImplicitAs.type.1 = import_ref Core//prelude/operators/as, inst+49, loaded [template = constants.%ImplicitAs]
|
||||
// CHECK:STDOUT: %import_ref.2 = import_ref Core//prelude/operators/as, inst+55, unloaded
|
||||
// CHECK:STDOUT: %import_ref.3: @ImplicitAs.%.1 (%.3) = import_ref Core//prelude/operators/as, inst+77, loaded [symbolic = @ImplicitAs.%.2 (constants.%.7)]
|
||||
// CHECK:STDOUT: %import_ref.4 = import_ref Core//prelude/operators/as, inst+70, unloaded
|
||||
// CHECK:STDOUT: %import_ref.5 = import_ref Core//prelude/operators/as, inst+70, unloaded
|
||||
// CHECK:STDOUT: %import_ref.6 = import_ref Core//prelude/operators/as, inst+70, unloaded
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
@@ -49,7 +49,7 @@ interface I {
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+9, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+15, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
|
||||
+9
-6
@@ -51,7 +51,7 @@ interface Interface {
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+9, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+15, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -72,6 +72,8 @@ interface Interface {
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc21_19: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_19.1: type = value_of_initializer %int.make_type_32.loc21_19 [template = i32]
|
||||
@@ -82,11 +84,12 @@ interface Interface {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc21_35: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_35.1: type = value_of_initializer %int.make_type_32.loc21_35 [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_35.2: type = converted %int.make_type_32.loc21_35, %.loc21_35.1 [template = i32]
|
||||
// CHECK:STDOUT: %return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc21_17: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %param.loc21_17
|
||||
// CHECK:STDOUT: %param.loc21_25: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %param.loc21_25
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc21: %.4 = assoc_entity element1, %G.decl [template = constants.%.5]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+41
-29
@@ -97,7 +97,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+9, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+15, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -113,6 +113,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc31_19: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_19.1: type = value_of_initializer %int.make_type_32.loc31_19 [template = i32]
|
||||
@@ -123,11 +125,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %int.make_type_32.loc31_35: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_35.1: type = value_of_initializer %int.make_type_32.loc31_35 [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_35.2: type = converted %int.make_type_32.loc31_35, %.loc31_35.1 [template = i32]
|
||||
// CHECK:STDOUT: %return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc31_17: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %param.loc31_17
|
||||
// CHECK:STDOUT: %param.loc31_25: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %param.loc31_25
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -140,6 +143,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc13_19: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc13_19.1: type = value_of_initializer %int.make_type_32.loc13_19 [template = i32]
|
||||
@@ -150,11 +155,12 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %int.make_type_32.loc13_35: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc13_35.1: type = value_of_initializer %int.make_type_32.loc13_35 [template = i32]
|
||||
// CHECK:STDOUT: %.loc13_35.2: type = converted %int.make_type_32.loc13_35, %.loc13_35.1 [template = i32]
|
||||
// CHECK:STDOUT: %return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc13_17: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %param.loc13_17
|
||||
// CHECK:STDOUT: %param.loc13_25: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %param.loc13_25
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc13: %.4 = assoc_entity element1, %G.decl [template = constants.%.5]
|
||||
// CHECK:STDOUT:
|
||||
@@ -244,18 +250,21 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %U.param_patt: type = param_pattern %U.patt.loc20, runtime_param<invalid> [symbolic = constants.%U.patt.2]
|
||||
// CHECK:STDOUT: %u.patt: %U = binding_pattern u
|
||||
// CHECK:STDOUT: %u.param_patt: %U = param_pattern %u.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: %U = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %U = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc20: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = constants.%C.2]
|
||||
// CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20 [symbolic = constants.%C.2]
|
||||
// CHECK:STDOUT: %.loc20_24: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = constants.%C.2]
|
||||
// CHECK:STDOUT: %Self.ref.loc20: type = name_ref Self, %.loc20_24 [symbolic = constants.%C.2]
|
||||
// CHECK:STDOUT: %U.ref.loc20_43: type = name_ref U, %U.loc20 [symbolic = constants.%U]
|
||||
// CHECK:STDOUT: %U.ref.loc20_49: type = name_ref U, %U.loc20 [symbolic = constants.%U]
|
||||
// CHECK:STDOUT: %return: ref %U = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc20_22: %C.2 = param runtime_param0
|
||||
// CHECK:STDOUT: %self.loc20: %C.2 = bind_name self, %param.loc20_22
|
||||
// CHECK:STDOUT: %param.loc20_31: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc20: type = bind_symbolic_name U, 1, %param.loc20_31 [symbolic = constants.%U]
|
||||
// CHECK:STDOUT: %param.loc20_41: %U = param runtime_param1
|
||||
// CHECK:STDOUT: %u.loc20: %U = bind_name u, %param.loc20_41
|
||||
// CHECK:STDOUT: %self.param.loc20: %C.2 = param runtime_param0
|
||||
// CHECK:STDOUT: %self.loc20: %C.2 = bind_name self, %self.param.loc20
|
||||
// CHECK:STDOUT: %U.param.loc20: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc20: type = bind_symbolic_name U, 1, %U.param.loc20 [symbolic = constants.%U]
|
||||
// CHECK:STDOUT: %u.param.loc20: %U = param runtime_param1
|
||||
// CHECK:STDOUT: %u.loc20: %U = bind_name u, %u.param.loc20
|
||||
// CHECK:STDOUT: %return.param.loc20: %U = param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref %U = return_slot %return.param.loc20
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -283,18 +292,21 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
|
||||
// CHECK:STDOUT: %U.param_patt: type = param_pattern %U.patt.loc20, runtime_param<invalid> [symbolic = constants.%U.patt.2]
|
||||
// CHECK:STDOUT: %u.patt: %U = binding_pattern u
|
||||
// CHECK:STDOUT: %u.param_patt: %U = param_pattern %u.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: %U = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %U = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc14: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = %C (constants.%C.2)]
|
||||
// CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14 [symbolic = %C (constants.%C.2)]
|
||||
// CHECK:STDOUT: %.loc14_16: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = %C (constants.%C.2)]
|
||||
// CHECK:STDOUT: %Self.ref.loc14: type = name_ref Self, %.loc14_16 [symbolic = %C (constants.%C.2)]
|
||||
// CHECK:STDOUT: %U.ref.loc14_35: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %U.ref.loc14_41: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %return.var.loc14: ref @F.%U.loc14_22.1 (%U) = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc14_14: @F.%C (%C.2) = param runtime_param0
|
||||
// CHECK:STDOUT: %self.loc14: @F.%C (%C.2) = bind_name self, %param.loc14_14
|
||||
// CHECK:STDOUT: %param.loc14_23: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1, %param.loc14_23 [symbolic = %U.loc14_22.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %param.loc14_33: @F.%U.loc14_22.1 (%U) = param runtime_param1
|
||||
// CHECK:STDOUT: %u.loc14: @F.%U.loc14_22.1 (%U) = bind_name u, %param.loc14_33
|
||||
// CHECK:STDOUT: %self.param.loc14: @F.%C (%C.2) = param runtime_param0
|
||||
// CHECK:STDOUT: %self.loc14: @F.%C (%C.2) = bind_name self, %self.param.loc14
|
||||
// CHECK:STDOUT: %U.param.loc14: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc14_22.2: type = bind_symbolic_name U, 1, %U.param.loc14 [symbolic = %U.loc14_22.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %u.param.loc14: @F.%U.loc14_22.1 (%U) = param runtime_param1
|
||||
// CHECK:STDOUT: %u.loc14: @F.%U.loc14_22.1 (%U) = bind_name u, %u.param.loc14
|
||||
// CHECK:STDOUT: %return.param.loc14: @F.%U.loc14_22.1 (%U) = param runtime_param2
|
||||
// CHECK:STDOUT: %.loc14_38: ref @F.%U.loc14_22.1 (%U) = return_slot %return.param.loc14
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc15: <witness> = complete_type_witness %.2 [template = constants.%.3]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -33,8 +33,8 @@ fn F(e: Empty) {}
|
||||
// CHECK:STDOUT: %e.param_patt: %Empty.type = param_pattern %e.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [template = constants.%Empty.type]
|
||||
// CHECK:STDOUT: %param: %Empty.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Empty.type = bind_name e, %param
|
||||
// CHECK:STDOUT: %e.param: %Empty.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Empty.type = bind_name e, %e.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -37,8 +37,8 @@ fn F(T:! Empty) {
|
||||
// CHECK:STDOUT: %T.param_patt: %Empty.type = param_pattern %T.patt.loc13_6.1, runtime_param<invalid> [symbolic = %T.patt.loc13_6.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [template = constants.%Empty.type]
|
||||
// CHECK:STDOUT: %param: %Empty.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc13_6.1: %Empty.type = bind_symbolic_name T, 0, %param [symbolic = %T.loc13_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: %Empty.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc13_6.1: %Empty.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+10
-7
@@ -62,15 +62,15 @@ fn H() {
|
||||
// CHECK:STDOUT: %T.patt.loc11_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc11_13.1, runtime_param<invalid> [symbolic = %T.patt.loc11_13.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc11_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {
|
||||
// CHECK:STDOUT: %T.patt.loc15_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc15_6.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc15_6.1, runtime_param<invalid> [symbolic = %T.patt.loc15_6.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc15_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc15_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc15_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
@@ -92,11 +92,14 @@ fn H() {
|
||||
// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type.1) = fn_decl @F [symbolic = @I.%F (constants.%F)] {
|
||||
// CHECK:STDOUT: %U.patt.loc12_8.2: type = symbolic_binding_pattern U, 2 [symbolic = %U.patt.loc12_8.1 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %U.param_patt: type = param_pattern %U.patt.loc12_8.2, runtime_param<invalid> [symbolic = %U.patt.loc12_8.1 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %return.patt: @F.%U.loc12_8.1 (%U) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @F.%U.loc12_8.1 (%U) = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc12_8.2 [symbolic = %U.loc12_8.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %return: ref @F.%U.loc12_8.1 (%U) = var <return slot>
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc12_8.2: type = bind_symbolic_name U, 2, %param [symbolic = %U.loc12_8.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %U.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc12_8.2: type = bind_symbolic_name U, 2, %U.param [symbolic = %U.loc12_8.1 (constants.%U)]
|
||||
// CHECK:STDOUT: %return.param: @F.%U.loc12_8.1 (%U) = param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref @F.%U.loc12_8.1 (%U) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc12_22.1: @I.%.loc12_22.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc12_22.3 (constants.%.3)]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -112,8 +112,8 @@ fn UseEmpty(i: I) {}
|
||||
// CHECK:STDOUT: %i.param_patt: %I.type = param_pattern %i.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %I.ref: type = name_ref I, imports.%import_ref.1 [template = constants.%I.type]
|
||||
// CHECK:STDOUT: %param: %I.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %I.type = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: %I.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %I.type = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -156,8 +156,8 @@ interface Class { }
|
||||
// CHECK:STDOUT: %Self.ref: %.type = name_ref Self, @.1.%Self [symbolic = %Self (constants.%Self.2)]
|
||||
// CHECK:STDOUT: %.loc14_14.1: type = facet_type_access %Self.ref [symbolic = %Self (constants.%Self.2)]
|
||||
// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %.loc14_14.1 [symbolic = %Self (constants.%Self.2)]
|
||||
// CHECK:STDOUT: %param: @F.%Self (%Self.2) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self.2) = bind_name self, %param
|
||||
// CHECK:STDOUT: %self.param: @F.%Self (%Self.2) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self.2) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc14: %.2 = assoc_entity element0, %F.decl [template = constants.%.3]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+8
-8
@@ -75,23 +75,23 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: %T.patt.loc19_22.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc19_22.1, runtime_param<invalid> [symbolic = %T.patt.loc19_22.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc19_22.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc19_22.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc19_22.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Generic.decl: %Generic.type = interface_decl @Generic [template = constants.%Generic] {
|
||||
// CHECK:STDOUT: %T.patt.loc21_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc21_19.1, runtime_param<invalid> [symbolic = %T.patt.loc21_19.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc21_19.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc21_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_19.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl.loc29: type = interface_decl @.2 [template = constants.%.type.3] {} {}
|
||||
// CHECK:STDOUT: %DifferentParams.decl: %DifferentParams.type = interface_decl @DifferentParams [template = constants.%DifferentParams] {
|
||||
// CHECK:STDOUT: %T.patt.loc31_27.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.3)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc31_27.1, runtime_param<invalid> [symbolic = %T.patt.loc31_27.2 (constants.%T.patt.3)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc31_27.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc31_27.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc31_27.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl.loc38: %.type.4 = interface_decl @.3 [template = constants.%.3] {
|
||||
// CHECK:STDOUT: %T.patt.loc38_27.1: %.1 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc38_27.2 (constants.%T.patt.4)]
|
||||
@@ -99,8 +99,8 @@ interface DifferentParams(T:! ()) {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc38_32.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc38_32.2: type = converted %.loc38_32.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %param: %.1 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc38_27.1: %.1 = bind_symbolic_name T, 0, %param [symbolic = %T.loc38_27.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: %T.param: %.1 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc38_27.1: %.1 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc38_27.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -84,10 +84,14 @@ interface BeingDefined {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @BeingDefined {
|
||||
// CHECK:STDOUT: %Self: %BeingDefined.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {} {
|
||||
// CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [template = constants.%H] {
|
||||
// CHECK:STDOUT: %return.patt: <error> = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: <error> = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %BeingDefined.ref: type = name_ref BeingDefined, file.%BeingDefined.decl [template = constants.%BeingDefined.type]
|
||||
// CHECK:STDOUT: %T.ref: <error> = name_ref T, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %return: ref <error> = var <return slot>
|
||||
// CHECK:STDOUT: %return.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref <error> = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc45: %.3 = assoc_entity element0, %H.decl [template = constants.%.4]
|
||||
// CHECK:STDOUT: %.decl: %.type.2 = fn_decl @.2 [template = constants.%.5] {} {}
|
||||
|
||||
+6
-6
@@ -56,8 +56,8 @@ fn CallFacet(T:! Interface, x: T) {
|
||||
// CHECK:STDOUT: %T.param_patt: %Interface.type = param_pattern %T.patt.loc13_15.1, runtime_param<invalid> [symbolic = %T.patt.loc13_15.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [template = constants.%Interface.type]
|
||||
// CHECK:STDOUT: %param: %Interface.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc13_15.1: %Interface.type = bind_symbolic_name T, 0, %param [symbolic = %T.loc13_15.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: %Interface.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc13_15.1: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc13_15.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %CallFacet.decl: %CallFacet.type = fn_decl @CallFacet [template = constants.%CallFacet] {
|
||||
// CHECK:STDOUT: %T.patt.loc21_14.1: %Interface.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc21_14.2 (constants.%T.patt.2)]
|
||||
@@ -69,10 +69,10 @@ fn CallFacet(T:! Interface, x: T) {
|
||||
// CHECK:STDOUT: %T.ref: %Interface.type = name_ref T, %T.loc21_14.1 [symbolic = %T.loc21_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc21_32.1: type = facet_type_access %T.ref [symbolic = %T.loc21_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc21_32.2: type = converted %T.ref, %.loc21_32.1 [symbolic = %T.loc21_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %param.loc21_15: %Interface.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc21_14.1: %Interface.type = bind_symbolic_name T, 0, %param.loc21_15 [symbolic = %T.loc21_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %param.loc21_30: @CallFacet.%T.loc21_14.2 (%T) = param runtime_param0
|
||||
// CHECK:STDOUT: %x: @CallFacet.%T.loc21_14.2 (%T) = bind_name x, %param.loc21_30
|
||||
// CHECK:STDOUT: %T.param: %Interface.type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc21_14.1: %Interface.type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc21_14.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %x.param: @CallFacet.%T.loc21_14.2 (%T) = param runtime_param0
|
||||
// CHECK:STDOUT: %x: @CallFacet.%T.loc21_14.2 (%T) = bind_name x, %x.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+16
-10
@@ -48,15 +48,17 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %T.patt.loc11_13.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_13.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc11_13.1, runtime_param<invalid> [symbolic = %T.patt.loc11_13.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc11_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc11_13.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc11_13.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type = fn_decl @.1 [symbolic = constants.%.4] {
|
||||
// CHECK:STDOUT: %self.patt: @.1.%Self (%Self) = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: @.1.%Self (%Self) = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %return.patt: @.1.%Self (%Self) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @.1.%Self (%Self) = param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param.loc22_7: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc22_6.1: type = bind_symbolic_name T, 0, %param.loc22_7 [symbolic = %T.loc22_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc22_6.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc22_24.1: @.1.%I.type (%I.type.2) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc22_24: @.1.%I.type (%I.type.2) = name_ref Self, %.loc22_24.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc22_24.2: type = facet_type_access %Self.ref.loc22_24 [symbolic = %Self (constants.%Self)]
|
||||
@@ -65,9 +67,10 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %Self.ref.loc22_35: @.1.%I.type (%I.type.2) = name_ref Self, %.loc22_35.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc22_35.2: type = facet_type_access %Self.ref.loc22_35 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc22_35.3: type = converted %Self.ref.loc22_35, %.loc22_35.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %return: ref @.1.%Self (%Self) = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc22_22: @.1.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @.1.%Self (%Self) = bind_name self, %param.loc22_22
|
||||
// CHECK:STDOUT: %self.param: @.1.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @.1.%Self (%Self) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: @.1.%Self (%Self) = param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref @.1.%Self (%Self) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -88,6 +91,8 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %F.decl: @I.%F.type (%F.type) = fn_decl @F [symbolic = @I.%F (constants.%F)] {
|
||||
// CHECK:STDOUT: %self.patt: @F.%Self (%Self) = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: @F.%Self (%Self) = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %return.patt: @F.%Self (%Self) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @F.%Self (%Self) = param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc13_14.1: @F.%I.type (%I.type.2) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %Self.ref.loc13_14: @F.%I.type (%I.type.2) = name_ref Self, %.loc13_14.1 [symbolic = %Self (constants.%Self)]
|
||||
@@ -97,9 +102,10 @@ fn I(T:! type).F[self: Self]() -> Self { return self; }
|
||||
// CHECK:STDOUT: %Self.ref.loc13_25: @F.%I.type (%I.type.2) = name_ref Self, %.loc13_25.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc13_25.2: type = facet_type_access %Self.ref.loc13_25 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc13_25.3: type = converted %Self.ref.loc13_25, %.loc13_25.2 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %return: ref @F.%Self (%Self) = var <return slot>
|
||||
// CHECK:STDOUT: %param: @F.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self) = bind_name self, %param
|
||||
// CHECK:STDOUT: %self.param: @F.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: @F.%Self (%Self) = param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref @F.%Self (%Self) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc13_29.1: @I.%.loc13_29.2 (%.2) = assoc_entity element0, %F.decl [symbolic = %.loc13_29.3 (constants.%.3)]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+30
-22
@@ -122,16 +122,16 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %T.patt.loc4_18.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc4_18.1, runtime_param<invalid> [symbolic = %T.patt.loc4_18.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc4_18.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_18.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_18.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {}
|
||||
// CHECK:STDOUT: %WithAssocFn.decl: %WithAssocFn.type.1 = interface_decl @WithAssocFn [template = constants.%WithAssocFn] {
|
||||
// CHECK:STDOUT: %T.patt.loc8_23.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc8_23.1, runtime_param<invalid> [symbolic = %T.patt.loc8_23.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc8_23.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc8_23.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_23.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl: type = class_decl @C [template = constants.%C] {} {}
|
||||
// CHECK:STDOUT: %WithImplicitArgs.decl: %WithImplicitArgs.type = interface_decl @WithImplicitArgs [template = constants.%WithImplicitArgs] {
|
||||
@@ -141,10 +141,10 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %N.param_patt: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = param_pattern %N.patt.loc22_38.1, runtime_param<invalid> [symbolic = %N.patt.loc22_38.2 (constants.%N.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc22_28.1 [symbolic = %T.loc22_28.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %param.loc22_29: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0, %param.loc22_29 [symbolic = %T.loc22_28.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %param.loc22_39: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = bind_symbolic_name N, 1, %param.loc22_39 [symbolic = %N.loc22_38.2 (constants.%N)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc22_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc22_28.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %N.param: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %N.loc22_38.1: @WithImplicitArgs.%T.loc22_28.2 (%T.1) = bind_symbolic_name N, 1, %N.param [symbolic = %N.loc22_38.2 (constants.%N)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Receive.decl: %Receive.type = fn_decl @Receive [template = constants.%Receive] {
|
||||
// CHECK:STDOUT: %T.patt.loc24_12.1: %Simple.type.3 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc24_12.2 (constants.%T.patt.4)]
|
||||
@@ -153,8 +153,8 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %Simple.ref: %Simple.type.1 = name_ref Simple, file.%Simple.decl [template = constants.%Simple]
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(constants.%C) [template = constants.%Simple.type.3]
|
||||
// CHECK:STDOUT: %param: %Simple.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.3 = bind_symbolic_name T, 0, %param [symbolic = %T.loc24_12.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: %T.param: %Simple.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc24_12.1: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc24_12.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Pass.decl: %Pass.type = fn_decl @Pass [template = constants.%Pass] {
|
||||
// CHECK:STDOUT: %T.patt.loc25_9.1: %Simple.type.3 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc25_9.2 (constants.%T.patt.5)]
|
||||
@@ -163,8 +163,8 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %Simple.ref: %Simple.type.1 = name_ref Simple, file.%Simple.decl [template = constants.%Simple]
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %Simple.type: type = interface_type @Simple, @Simple(constants.%C) [template = constants.%Simple.type.3]
|
||||
// CHECK:STDOUT: %param: %Simple.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.3 = bind_symbolic_name T, 0, %param [symbolic = %T.loc25_9.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: %T.param: %Simple.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc25_9.1: %Simple.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc25_9.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -199,9 +199,13 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: %Self.1: @WithAssocFn.%WithAssocFn.type (%WithAssocFn.type.2) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2)]
|
||||
// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @WithAssocFn.%F (constants.%F.1)] {} {
|
||||
// CHECK:STDOUT: %F.decl: @WithAssocFn.%F.type (%F.type.1) = fn_decl @F.1 [symbolic = @WithAssocFn.%F (constants.%F.1)] {
|
||||
// CHECK:STDOUT: %return.patt: %X = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %X = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X]
|
||||
// CHECK:STDOUT: %return: ref %X = var <return slot>
|
||||
// CHECK:STDOUT: %return.param: %X = param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref %X = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc10_14.1: @WithAssocFn.%.loc10_14.2 (%.4) = assoc_entity element0, %F.decl [symbolic = %.loc10_14.3 (constants.%.5)]
|
||||
// CHECK:STDOUT:
|
||||
@@ -229,9 +233,13 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: impl @impl.2: %Self.ref as %WithAssocFn.type {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {} {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {
|
||||
// CHECK:STDOUT: %return.patt: %X = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %X = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [template = constants.%X]
|
||||
// CHECK:STDOUT: %return: ref %X = var <return slot>
|
||||
// CHECK:STDOUT: %return.param: %X = param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref %X = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc15: <witness> = interface_witness (%F.decl) [template = constants.%.9]
|
||||
// CHECK:STDOUT:
|
||||
@@ -416,8 +424,8 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %T.patt.loc4_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc4_19.1, runtime_param<invalid> [symbolic = %T.patt.loc4_19.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc4_19.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T.1)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %A.decl: type = class_decl @A [template = constants.%A] {} {}
|
||||
// CHECK:STDOUT: %B.decl: type = class_decl @B [template = constants.%B] {} {}
|
||||
@@ -428,8 +436,8 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %Generic.ref: %Generic.type.1 = name_ref Generic, file.%Generic.decl [template = constants.%Generic]
|
||||
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [template = constants.%A]
|
||||
// CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(constants.%A) [template = constants.%Generic.type.3]
|
||||
// CHECK:STDOUT: %param: %Generic.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.3 = bind_symbolic_name T, 0, %param [symbolic = %T.loc9_6.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: %T.param: %Generic.type.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc9_6.1: %Generic.type.3 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc9_6.2 (constants.%T.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [template = constants.%G] {
|
||||
// CHECK:STDOUT: %T.patt.loc10_6.1: %Generic.type.4 = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt.3)]
|
||||
@@ -438,8 +446,8 @@ fn G(T:! Generic(B)) {
|
||||
// CHECK:STDOUT: %Generic.ref: %Generic.type.1 = name_ref Generic, file.%Generic.decl [template = constants.%Generic]
|
||||
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [template = constants.%B]
|
||||
// CHECK:STDOUT: %Generic.type: type = interface_type @Generic, @Generic(constants.%B) [template = constants.%Generic.type.4]
|
||||
// CHECK:STDOUT: %param: %Generic.type.4 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4 = bind_symbolic_name T, 0, %param [symbolic = %T.loc10_6.2 (constants.%T.3)]
|
||||
// CHECK:STDOUT: %T.param: %Generic.type.4 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc10_6.1: %Generic.type.4 = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc10_6.2 (constants.%T.3)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+4
-4
@@ -50,8 +50,8 @@ interface I {
|
||||
// CHECK:STDOUT: %T.patt.loc12_8.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc12_8.1 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc12_8.2, runtime_param<invalid> [symbolic = %T.patt.loc12_8.1 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc12_8.2: type = bind_symbolic_name T, 1, %param [symbolic = %T.loc12_8.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc12_8.2: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc12_8.1 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc12: %.2 = assoc_entity element0, %F.decl [template = constants.%.3]
|
||||
// CHECK:STDOUT: %U: type = assoc_const_decl U [template]
|
||||
@@ -60,8 +60,8 @@ interface I {
|
||||
// CHECK:STDOUT: %T.patt.loc16_8.2: type = symbolic_binding_pattern T, 1 [symbolic = %T.patt.loc16_8.1 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc16_8.2, runtime_param<invalid> [symbolic = %T.patt.loc16_8.1 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc16_8.2: type = bind_symbolic_name T, 1, %param [symbolic = %T.loc16_8.1 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc16_8.2: type = bind_symbolic_name T, 1, %T.param [symbolic = %T.loc16_8.1 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc16: %.6 = assoc_entity element2, %G.decl [template = constants.%.7]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -51,8 +51,8 @@ impl C as AddWith(C) {
|
||||
// CHECK:STDOUT: %T.patt.loc4_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc4_19.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc4_19.1, runtime_param<invalid> [symbolic = %T.patt.loc4_19.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc4_19.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc4_19.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc4_19.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -102,15 +102,15 @@ interface A(T: type) {}
|
||||
// CHECK:STDOUT: %T.patt.loc6_28.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc6_28.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc6_28.1, runtime_param<invalid> [symbolic = %T.patt.loc6_28.2 (constants.%T.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc6_28.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc6_28.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc6_28.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl: %C.type = class_decl @C [template = constants.%C.1] {
|
||||
// CHECK:STDOUT: %T.patt.loc8_9.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_9.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: %T.param_patt: type = param_pattern %T.patt.loc8_9.1, runtime_param<invalid> [symbolic = %T.patt.loc8_9.2 (constants.%T.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc8_9.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %T.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %T.loc8_9.1: type = bind_symbolic_name T, 0, %T.param [symbolic = %T.loc8_9.2 (constants.%T)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %X.decl: type = class_decl @X [template = constants.%X] {} {}
|
||||
// CHECK:STDOUT: impl_decl @impl.1 [template] {} {
|
||||
@@ -262,8 +262,8 @@ interface A(T: type) {}
|
||||
// CHECK:STDOUT: %U.patt.loc10_30.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc10_30.2 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: %U.param_patt: type = param_pattern %U.patt.loc10_30.1, runtime_param<invalid> [symbolic = %U.patt.loc10_30.2 (constants.%U.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc10_30.1: type = bind_symbolic_name U, 1, %param [symbolic = %U.loc10_30.2 (constants.%U)]
|
||||
// CHECK:STDOUT: %U.param: type = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %U.loc10_30.1: type = bind_symbolic_name U, 1, %U.param [symbolic = %U.loc10_30.2 (constants.%U)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc11: <witness> = complete_type_witness %.2 [template = constants.%.3]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -216,24 +216,24 @@ var f: ForwardDeclared* = &f_ref.f;
|
||||
// CHECK:STDOUT: %e.param_patt: %Empty.type = param_pattern %e.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Empty.ref: type = name_ref Empty, imports.%import_ref.1 [template = constants.%Empty.type]
|
||||
// CHECK:STDOUT: %param: %Empty.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Empty.type = bind_name e, %param
|
||||
// CHECK:STDOUT: %e.param: %Empty.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Empty.type = bind_name e, %e.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %UseBasic.decl: %UseBasic.type = fn_decl @UseBasic [template = constants.%UseBasic] {
|
||||
// CHECK:STDOUT: %e.patt: %Basic.type = binding_pattern e
|
||||
// CHECK:STDOUT: %e.param_patt: %Basic.type = param_pattern %e.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Basic.ref: type = name_ref Basic, imports.%import_ref.2 [template = constants.%Basic.type]
|
||||
// CHECK:STDOUT: %param: %Basic.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Basic.type = bind_name e, %param
|
||||
// CHECK:STDOUT: %e.param: %Basic.type = param runtime_param0
|
||||
// CHECK:STDOUT: %e: %Basic.type = bind_name e, %e.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %UseForwardDeclared.decl: %UseForwardDeclared.type = fn_decl @UseForwardDeclared [template = constants.%UseForwardDeclared] {
|
||||
// CHECK:STDOUT: %f.patt: %ForwardDeclared.type = binding_pattern f
|
||||
// CHECK:STDOUT: %f.param_patt: %ForwardDeclared.type = param_pattern %f.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %ForwardDeclared.ref: type = name_ref ForwardDeclared, imports.%import_ref.3 [template = constants.%ForwardDeclared.type]
|
||||
// CHECK:STDOUT: %param: %ForwardDeclared.type = param runtime_param0
|
||||
// CHECK:STDOUT: %f: %ForwardDeclared.type = bind_name f, %param
|
||||
// CHECK:STDOUT: %f.param: %ForwardDeclared.type = param runtime_param0
|
||||
// CHECK:STDOUT: %f: %ForwardDeclared.type = bind_name f, %f.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Basic.ref.loc10: type = name_ref Basic, imports.%import_ref.2 [template = constants.%Basic.type]
|
||||
// CHECK:STDOUT: %T.ref.loc10: %.2 = name_ref T, imports.%import_ref.7 [template = constants.%.3]
|
||||
|
||||
@@ -218,8 +218,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: %i.param_patt: %Def.type = param_pattern %i.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Def.ref: type = name_ref Def, imports.%import_ref.1 [template = constants.%Def.type]
|
||||
// CHECK:STDOUT: %param: %Def.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %Def.type = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: %Def.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %Def.type = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -252,8 +252,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: %i.param_patt: <error> = param_pattern %i.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Def.ref: <error> = name_ref Def, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -288,8 +288,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Test.ref: <namespace> = name_ref Test, imports.%Test [template = imports.%Test]
|
||||
// CHECK:STDOUT: %Def.ref: <error> = name_ref Def, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -325,8 +325,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: %i.param_patt: %ForwardWithDef.type = param_pattern %i.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %ForwardWithDef.ref: type = name_ref ForwardWithDef, imports.%import_ref.1 [template = constants.%ForwardWithDef.type]
|
||||
// CHECK:STDOUT: %param: %ForwardWithDef.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %ForwardWithDef.type = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: %ForwardWithDef.type = param runtime_param0
|
||||
// CHECK:STDOUT: %i: %ForwardWithDef.type = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -359,8 +359,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: %i.param_patt: <error> = param_pattern %i.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %ForwardWithDef.ref: <error> = name_ref ForwardWithDef, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -395,8 +395,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Test.ref: <namespace> = name_ref Test, imports.%Test [template = imports.%Test]
|
||||
// CHECK:STDOUT: %ForwardWithDef.ref: <error> = name_ref ForwardWithDef, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -428,8 +428,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Forward.ref: <error> = name_ref Forward, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %.loc8: type = ptr_type <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Forward.decl: type = interface_decl @Forward [template = constants.%Forward.type] {} {}
|
||||
// CHECK:STDOUT: }
|
||||
@@ -466,8 +466,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Forward.ref: <error> = name_ref Forward, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %.loc10: type = ptr_type <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -502,8 +502,8 @@ private interface Redecl {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Forward.ref: <error> = name_ref Forward, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %.loc9: type = ptr_type <error> [template = <error>]
|
||||
// CHECK:STDOUT: %param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %param
|
||||
// CHECK:STDOUT: %i.param: <error> = param runtime_param0
|
||||
// CHECK:STDOUT: %i: <error> = bind_name i, %i.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -36,6 +36,8 @@ interface UseSelf {
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {
|
||||
// CHECK:STDOUT: %self.patt: @F.%Self (%Self) = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: @F.%Self (%Self) = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %return.patt: @F.%Self (%Self) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @F.%Self (%Self) = param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref.loc12_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_14.1: type = facet_type_access %Self.ref.loc12_14 [symbolic = %Self (constants.%Self)]
|
||||
@@ -43,9 +45,10 @@ interface UseSelf {
|
||||
// CHECK:STDOUT: %Self.ref.loc12_25: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_25.1: type = facet_type_access %Self.ref.loc12_25 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_25.2: type = converted %Self.ref.loc12_25, %.loc12_25.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %return: ref @F.%Self (%Self) = var <return slot>
|
||||
// CHECK:STDOUT: %param: @F.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self) = bind_name self, %param
|
||||
// CHECK:STDOUT: %self.param: @F.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.%Self (%Self) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %return.param: @F.%Self (%Self) = param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref @F.%Self (%Self) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc12: %.2 = assoc_entity element0, %F.decl [template = constants.%.3]
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -222,32 +222,32 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %param.loc7 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc8: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt.loc7_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc8: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0, %param.loc8 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: %a.param.loc8: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc8: %C = bind_symbolic_name a, 0, %a.param.loc8 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl.loc10: %Bar.type.1 = interface_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt.loc10_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc10_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc10_15.1, runtime_param<invalid> [symbolic = %a.patt.loc10_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref.loc10: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc10: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc10_15.1: %C = bind_symbolic_name a, 0, %param.loc10 [symbolic = %a.loc10_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param.loc10: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc10_15.1: %C = bind_symbolic_name a, 0, %a.param.loc10 [symbolic = %a.loc10_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl.loc11: %Bar.type.1 = interface_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt.loc10_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc10_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc10_15.1, runtime_param<invalid> [symbolic = %a.patt.loc10_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc11: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0, %param.loc11 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: %a.param.loc11: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc11: %C = bind_symbolic_name a, 0, %a.param.loc11 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -339,16 +339,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_21.1, runtime_param<invalid> [symbolic = %a.patt.loc6_21.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc6: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_21.1: %C = bind_symbolic_name a, 0, %param.loc6 [symbolic = %a.loc6_21.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param.loc6: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_21.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_21.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt.loc6_21.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_21.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_21.1, runtime_param<invalid> [symbolic = %a.patt.loc6_21.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %param.loc7 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -415,16 +415,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_15.1, runtime_param<invalid> [symbolic = %a.patt.loc6_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] {
|
||||
// CHECK:STDOUT: %a.patt.loc14_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc14_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc14_15.1, runtime_param<invalid> [symbolic = %a.patt.loc14_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc14_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc14_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc14_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc14_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -501,16 +501,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_15.1, runtime_param<invalid> [symbolic = %a.patt.loc6_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc6: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc6: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %param.loc6 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param.loc6: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param.loc6 [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Foo.decl.loc7: %Foo.type.1 = interface_decl @Foo [template = constants.%Foo] {
|
||||
// CHECK:STDOUT: %a.patt.loc6_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc6_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_15.1, runtime_param<invalid> [symbolic = %a.patt.loc6_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref.loc7: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %param.loc7 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: %a.param.loc7: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7: %C = bind_symbolic_name a, 0, %a.param.loc7 [symbolic = constants.%a]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -579,16 +579,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Bar.decl: %Bar.type = interface_decl @Bar [template = constants.%Bar] {
|
||||
// CHECK:STDOUT: %a.patt.loc8_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc8_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc8_15.1, runtime_param<invalid> [symbolic = %a.patt.loc8_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc8_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc8_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc8_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc8_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -670,16 +670,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc12_15.1, runtime_param<invalid> [symbolic = %a.patt.loc12_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, imports.%import_ref.1 [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc12_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc12_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc12_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl.loc21: %.type.3 = interface_decl @.2 [template = constants.%.5] {
|
||||
// CHECK:STDOUT: %a.patt.loc21_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc21_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc21_15.1, runtime_param<invalid> [symbolic = %a.patt.loc21_15.2 (constants.%a.patt.3)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, imports.%import_ref.2 [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc21_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc21_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc21_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -799,16 +799,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] {
|
||||
// CHECK:STDOUT: %b.patt.loc15_15.1: %C = symbolic_binding_pattern b, 0 [symbolic = %b.patt.loc15_15.2 (constants.%b.patt)]
|
||||
// CHECK:STDOUT: %b.param_patt: %C = param_pattern %b.patt.loc15_15.1, runtime_param<invalid> [symbolic = %b.patt.loc15_15.2 (constants.%b.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %b.loc15_15.1: %C = bind_symbolic_name b, 0, %param [symbolic = %b.loc15_15.2 (constants.%b)]
|
||||
// CHECK:STDOUT: %b.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %b.loc15_15.1: %C = bind_symbolic_name b, 0, %b.param [symbolic = %b.loc15_15.2 (constants.%b)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -890,16 +890,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] {
|
||||
// CHECK:STDOUT: %a.patt.loc15_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc15_15.1, runtime_param<invalid> [symbolic = %a.patt.loc15_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -981,16 +981,16 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc7_15.1, runtime_param<invalid> [symbolic = %a.patt.loc7_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc7_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc7_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.4] {
|
||||
// CHECK:STDOUT: %a.patt.loc15_15.1: %C = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc15_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc15_15.1, runtime_param<invalid> [symbolic = %a.patt.loc15_15.2 (constants.%a.patt.2)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc15_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc15_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1064,8 +1064,8 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc6_15.1, runtime_param<invalid> [symbolic = %a.patt.loc6_15.2 (constants.%a.patt)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1127,8 +1127,8 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %a.param_patt: %C = param_pattern %a.patt.loc17_15.1, runtime_param<invalid> [symbolic = %a.patt.loc17_15.2 (constants.%a.patt.1)]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D [template = constants.%C]
|
||||
// CHECK:STDOUT: %param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc17_15.1: %C = bind_symbolic_name a, 0, %param [symbolic = %a.loc17_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %C = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc17_15.1: %C = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc17_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -1207,8 +1207,8 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %.loc6: type = const_type %C [template = constants.%.3]
|
||||
// CHECK:STDOUT: %param: %.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %.3 = bind_symbolic_name a, 0, %param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc6_15.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc6_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.decl: %.type.1 = interface_decl @.1 [template = constants.%.5] {
|
||||
// CHECK:STDOUT: %a.patt.loc17_15.1: %.3 = symbolic_binding_pattern a, 0 [symbolic = %a.patt.loc17_15.2 (constants.%a.patt.2)]
|
||||
@@ -1217,8 +1217,8 @@ interface Foo(a:! const (const C)) {}
|
||||
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %.loc17_26: type = const_type %C [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc17_19: type = const_type %.3 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %param: %.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc17_15.1: %.3 = bind_symbolic_name a, 0, %param [symbolic = %a.loc17_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: %a.param: %.3 = param runtime_param<invalid>
|
||||
// CHECK:STDOUT: %a.loc17_15.1: %.3 = bind_symbolic_name a, 0, %a.param [symbolic = %a.loc17_15.2 (constants.%a)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -56,7 +56,7 @@ interface I {
|
||||
// CHECK:STDOUT: import Core//prelude/operators/comparison
|
||||
// CHECK:STDOUT: import Core//prelude/types/bool
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+9, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: %import_ref: %Int32.type = import_ref Core//prelude/types, inst+15, loaded [template = constants.%Int32]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
@@ -77,6 +77,8 @@ interface I {
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc14_11: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc14_11.1: type = value_of_initializer %int.make_type_32.loc14_11 [template = i32]
|
||||
@@ -87,11 +89,12 @@ interface I {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc14_27: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc14_27.1: type = value_of_initializer %int.make_type_32.loc14_27 [template = i32]
|
||||
// CHECK:STDOUT: %.loc14_27.2: type = converted %int.make_type_32.loc14_27, %.loc14_27.1 [template = i32]
|
||||
// CHECK:STDOUT: %return: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %param.loc14_9: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %param.loc14_9
|
||||
// CHECK:STDOUT: %param.loc14_17: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %param.loc14_17
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc14: %.4 = assoc_entity element1, %G.decl [template = constants.%.5]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc18_19: init type = call constants.%Int32() [template = i32]
|
||||
|
||||
Reference in New Issue
Block a user