diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 6a6c96925d..29e4d1e7a1 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -74,6 +74,7 @@ module [ concatUtf8, forEach!, forEachTry!, + walk!, ] import Bool exposing [Bool, Eq] @@ -1466,3 +1467,20 @@ forEachTry! = \list, func! -> Err err -> Err err + +## Build a value from the contents of a list, using an effectful function. +## +## ```roc +## now_multiples = List.walk! [1, 2, 3] [] \nums, i -> +## now = Utc.now! {} |> Utc.to_millis_since_epoch +## List.append nums (now * i) +## ``` +## +## This is the same as [walk], except that the step function can have effects. +walk! : List elem, state, (state, elem => state) => state +walk! = \list, state, func! -> + when list is + [] -> state + [elem, .. as rest] -> + nextState = func! state elem + walk! rest nextState func! diff --git a/crates/compiler/test_mono/generated/anonymous_closure_in_polymorphic_expression_issue_4717.txt b/crates/compiler/test_mono/generated/anonymous_closure_in_polymorphic_expression_issue_4717.txt index 7f6c0075b9..f8450369f3 100644 --- a/crates/compiler/test_mono/generated/anonymous_closure_in_polymorphic_expression_issue_4717.txt +++ b/crates/compiler/test_mono/generated/anonymous_closure_in_polymorphic_expression_issue_4717.txt @@ -3,80 +3,80 @@ procedure Bool.11 (#Attr.2, #Attr.3): ret Bool.23; procedure List.115 (List.562, List.563, List.564): - let List.677 : U64 = 0i64; - let List.678 : U64 = CallByName List.6 List.562; - let List.676 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.677 List.678; - ret List.676; + let List.683 : U64 = 0i64; + let List.684 : U64 = CallByName List.6 List.562; + let List.682 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.683 List.684; + ret List.682; procedure List.26 (List.212, List.213, List.214): - let List.670 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214; - let List.673 : U8 = 1i64; - let List.674 : U8 = GetTagId List.670; - let List.675 : Int1 = lowlevel Eq List.673 List.674; - if List.675 then - let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.670; + let List.676 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214; + let List.679 : U8 = 1i64; + let List.680 : U8 = GetTagId List.676; + let List.681 : Int1 = lowlevel Eq List.679 List.680; + if List.681 then + let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.676; ret List.215; else - let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670; + let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.676; ret List.216; procedure List.38 (List.400, List.401): - let List.669 : U64 = CallByName List.6 List.400; - let List.402 : U64 = CallByName Num.77 List.669 List.401; - let List.659 : List U8 = CallByName List.43 List.400 List.402; - ret List.659; + let List.675 : U64 = CallByName List.6 List.400; + let List.402 : U64 = CallByName Num.77 List.675 List.401; + let List.665 : List U8 = CallByName List.43 List.400 List.402; + ret List.665; procedure List.43 (List.398, List.399): - let List.667 : U64 = CallByName List.6 List.398; - let List.666 : U64 = CallByName Num.77 List.667 List.399; - let List.661 : {U64, U64} = Struct {List.399, List.666}; - let List.660 : List U8 = CallByName List.49 List.398 List.661; - ret List.660; + let List.673 : U64 = CallByName List.6 List.398; + let List.672 : U64 = CallByName Num.77 List.673 List.399; + let List.667 : {U64, U64} = Struct {List.399, List.672}; + let List.666 : List U8 = CallByName List.49 List.398 List.667; + ret List.666; procedure List.49 (List.476, List.477): - let List.663 : U64 = StructAtIndex 1 List.477; - let List.664 : U64 = StructAtIndex 0 List.477; - let List.662 : List U8 = CallByName List.72 List.476 List.663 List.664; - ret List.662; + let List.669 : U64 = StructAtIndex 1 List.477; + let List.670 : U64 = StructAtIndex 0 List.477; + let List.668 : List U8 = CallByName List.72 List.476 List.669 List.670; + ret List.668; procedure List.6 (#Attr.2): - let List.668 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.668; + let List.674 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.674; procedure List.66 (#Attr.2, #Attr.3): - let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.691; + let List.697 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.697; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.665; + let List.671 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.671; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.679 List.565 List.566 List.567 List.568 List.569: - let List.681 : Int1 = CallByName Num.22 List.568 List.569; - if List.681 then - let List.690 : U8 = CallByName List.66 List.565 List.568; - let List.682 : [C U64, C U64] = CallByName Test.4 List.566 List.690; - let List.687 : U8 = 1i64; - let List.688 : U8 = GetTagId List.682; - let List.689 : Int1 = lowlevel Eq List.687 List.688; - if List.689 then - let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.682; - let List.685 : U64 = 1i64; - let List.684 : U64 = CallByName Num.51 List.568 List.685; - jump List.679 List.565 List.570 List.567 List.684 List.569; + joinpoint List.685 List.565 List.566 List.567 List.568 List.569: + let List.687 : Int1 = CallByName Num.22 List.568 List.569; + if List.687 then + let List.696 : U8 = CallByName List.66 List.565 List.568; + let List.688 : [C U64, C U64] = CallByName Test.4 List.566 List.696; + let List.693 : U8 = 1i64; + let List.694 : U8 = GetTagId List.688; + let List.695 : Int1 = lowlevel Eq List.693 List.694; + if List.695 then + let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.688; + let List.691 : U64 = 1i64; + let List.690 : U64 = CallByName Num.51 List.568 List.691; + jump List.685 List.565 List.570 List.567 List.690 List.569; else dec List.565; - let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.682; - let List.686 : [C U64, C U64] = TagId(0) List.571; - ret List.686; + let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.688; + let List.692 : [C U64, C U64] = TagId(0) List.571; + ret List.692; else dec List.565; - let List.680 : [C U64, C U64] = TagId(1) List.566; - ret List.680; + let List.686 : [C U64, C U64] = TagId(1) List.566; + ret List.686; in inc #Derived_gen.0; - jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.685 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/call_function_in_empty_list.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt index 1404c63922..202ff21f0f 100644 --- a/crates/compiler/test_mono/generated/call_function_in_empty_list.txt +++ b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt @@ -1,51 +1,51 @@ procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.665 List.174 List.175 List.176 List.177 List.178: - let List.667 : Int1 = CallByName Num.22 List.177 List.178; - if List.667 then - let List.671 : [] = CallByName List.66 List.174 List.177; - let List.179 : List {} = CallByName List.283 List.175 List.671 List.176; - let List.670 : U64 = 1i64; - let List.669 : U64 = CallByName Num.51 List.177 List.670; - jump List.665 List.174 List.179 List.176 List.669 List.178; + joinpoint List.671 List.174 List.175 List.176 List.177 List.178: + let List.673 : Int1 = CallByName Num.22 List.177 List.178; + if List.673 then + let List.677 : [] = CallByName List.66 List.174 List.177; + let List.179 : List {} = CallByName List.283 List.175 List.677 List.176; + let List.676 : U64 = 1i64; + let List.675 : U64 = CallByName Num.51 List.177 List.676; + jump List.671 List.174 List.179 List.176 List.675 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.663 : U64 = 0i64; - let List.664 : U64 = CallByName List.6 List.171; - let List.662 : List {} = CallByName List.100 List.171 List.172 List.173 List.663 List.664; - ret List.662; + let List.669 : U64 = 0i64; + let List.670 : U64 = CallByName List.6 List.171; + let List.668 : List {} = CallByName List.100 List.171 List.172 List.173 List.669 List.670; + ret List.668; procedure List.283 (List.284, List.285, List.281): - let List.676 : {} = CallByName Test.2 List.285; - let List.675 : List {} = CallByName List.71 List.284 List.676; - ret List.675; + let List.682 : {} = CallByName Test.2 List.285; + let List.681 : List {} = CallByName List.71 List.284 List.682; + ret List.681; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.660 : List {} = CallByName List.68 List.282; - let List.659 : List {} = CallByName List.18 List.280 List.660 List.281; - ret List.659; + let List.666 : List {} = CallByName List.68 List.282; + let List.665 : List {} = CallByName List.18 List.280 List.666 List.281; + ret List.665; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.679 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.679; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.68 (#Attr.2): - let List.678 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.678; + let List.684 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.684; procedure List.71 (#Attr.2, #Attr.3): - let List.677 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.677; + let List.683 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/call_function_in_empty_list_unbound.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list_unbound.txt index 82145c34d4..fd6401ba7b 100644 --- a/crates/compiler/test_mono/generated/call_function_in_empty_list_unbound.txt +++ b/crates/compiler/test_mono/generated/call_function_in_empty_list_unbound.txt @@ -1,51 +1,51 @@ procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.665 List.174 List.175 List.176 List.177 List.178: - let List.667 : Int1 = CallByName Num.22 List.177 List.178; - if List.667 then - let List.671 : [] = CallByName List.66 List.174 List.177; - let List.179 : List [] = CallByName List.283 List.175 List.671 List.176; - let List.670 : U64 = 1i64; - let List.669 : U64 = CallByName Num.51 List.177 List.670; - jump List.665 List.174 List.179 List.176 List.669 List.178; + joinpoint List.671 List.174 List.175 List.176 List.177 List.178: + let List.673 : Int1 = CallByName Num.22 List.177 List.178; + if List.673 then + let List.677 : [] = CallByName List.66 List.174 List.177; + let List.179 : List [] = CallByName List.283 List.175 List.677 List.176; + let List.676 : U64 = 1i64; + let List.675 : U64 = CallByName Num.51 List.177 List.676; + jump List.671 List.174 List.179 List.176 List.675 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.663 : U64 = 0i64; - let List.664 : U64 = CallByName List.6 List.171; - let List.662 : List [] = CallByName List.100 List.171 List.172 List.173 List.663 List.664; - ret List.662; + let List.669 : U64 = 0i64; + let List.670 : U64 = CallByName List.6 List.171; + let List.668 : List [] = CallByName List.100 List.171 List.172 List.173 List.669 List.670; + ret List.668; procedure List.283 (List.284, List.285, List.281): - let List.676 : [] = CallByName Test.2 List.285; - let List.675 : List [] = CallByName List.71 List.284 List.676; - ret List.675; + let List.682 : [] = CallByName Test.2 List.285; + let List.681 : List [] = CallByName List.71 List.284 List.682; + ret List.681; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.660 : List [] = CallByName List.68 List.282; - let List.659 : List [] = CallByName List.18 List.280 List.660 List.281; - ret List.659; + let List.666 : List [] = CallByName List.68 List.282; + let List.665 : List [] = CallByName List.18 List.280 List.666 List.281; + ret List.665; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.679 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.679; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.68 (#Attr.2): - let List.678 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.678; + let List.684 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.684; procedure List.71 (#Attr.2, #Attr.3): - let List.677 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.677; + let List.683 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/capture_void_layout_task.txt b/crates/compiler/test_mono/generated/capture_void_layout_task.txt index 61e80faf52..27432303ed 100644 --- a/crates/compiler/test_mono/generated/capture_void_layout_task.txt +++ b/crates/compiler/test_mono/generated/capture_void_layout_task.txt @@ -1,32 +1,32 @@ procedure List.100 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : [] = CallByName List.66 List.174 List.177; - let List.179 : [C {}, C *self {{}, []}] = CallByName Test.29 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : [] = CallByName List.66 List.174 List.177; + let List.179 : [C {}, C *self {{}, []}] = CallByName Test.29 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.13; - jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.668 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : [C {}, C *self {{}, []}] = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : [C {}, C *self {{}, []}] = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/choose_correct_recursion_var_under_record.txt b/crates/compiler/test_mono/generated/choose_correct_recursion_var_under_record.txt index b23094330f..4ff2c76757 100644 --- a/crates/compiler/test_mono/generated/choose_correct_recursion_var_under_record.txt +++ b/crates/compiler/test_mono/generated/choose_correct_recursion_var_under_record.txt @@ -3,91 +3,91 @@ procedure Bool.1 (): ret Bool.24; procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.681 List.174 List.175 List.176 List.177 List.178: - let List.683 : Int1 = CallByName Num.22 List.177 List.178; - if List.683 then - let List.687 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.174 List.177; - inc List.687; - let List.179 : List Str = CallByName List.283 List.175 List.687 List.176; - let List.686 : U64 = 1i64; - let List.685 : U64 = CallByName Num.51 List.177 List.686; - jump List.681 List.174 List.179 List.176 List.685 List.178; + joinpoint List.687 List.174 List.175 List.176 List.177 List.178: + let List.689 : Int1 = CallByName Num.22 List.177 List.178; + if List.689 then + let List.693 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.174 List.177; + inc List.693; + let List.179 : List Str = CallByName List.283 List.175 List.693 List.176; + let List.692 : U64 = 1i64; + let List.691 : U64 = CallByName Num.51 List.177 List.692; + jump List.687 List.174 List.179 List.176 List.691 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.687 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.679 : U64 = 0i64; - let List.680 : U64 = CallByName List.6 List.171; - let List.678 : List Str = CallByName List.100 List.171 List.172 List.173 List.679 List.680; - ret List.678; + let List.685 : U64 = 0i64; + let List.686 : U64 = CallByName List.6 List.171; + let List.684 : List Str = CallByName List.100 List.171 List.172 List.173 List.685 List.686; + ret List.684; procedure List.2 (List.119, List.120): - let List.673 : U64 = CallByName List.6 List.119; - let List.669 : Int1 = CallByName Num.22 List.120 List.673; - if List.669 then - let List.671 : Str = CallByName List.66 List.119 List.120; - inc List.671; - let List.670 : [C {}, C Str] = TagId(1) List.671; - ret List.670; + let List.679 : U64 = CallByName List.6 List.119; + let List.675 : Int1 = CallByName Num.22 List.120 List.679; + if List.675 then + let List.677 : Str = CallByName List.66 List.119 List.120; + inc List.677; + let List.676 : [C {}, C Str] = TagId(1) List.677; + ret List.676; else - let List.668 : {} = Struct {}; - let List.667 : [C {}, C Str] = TagId(0) List.668; - ret List.667; + let List.674 : {} = Struct {}; + let List.673 : [C {}, C Str] = TagId(0) List.674; + ret List.673; procedure List.283 (List.284, List.285, List.281): - let List.692 : Str = CallByName Test.10 List.285; - let List.691 : List Str = CallByName List.71 List.284 List.692; - ret List.691; + let List.698 : Str = CallByName Test.10 List.285; + let List.697 : List Str = CallByName List.71 List.284 List.698; + ret List.697; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.676 : List Str = CallByName List.68 List.282; - let List.675 : List Str = CallByName List.18 List.280 List.676 List.281; - ret List.675; + let List.682 : List Str = CallByName List.68 List.282; + let List.681 : List Str = CallByName List.18 List.280 List.682 List.281; + ret List.681; procedure List.6 (#Attr.2): - let List.674 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.674; + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; procedure List.6 (#Attr.2): - let List.689 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.689; + let List.695 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.695; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.688 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.688; + let List.694 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.694; procedure List.68 (#Attr.2): - let List.694 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.694; + let List.700 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.700; procedure List.71 (#Attr.2, #Attr.3): - let List.693 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.693; + let List.699 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.699; procedure List.9 (List.391): - let List.666 : U64 = 0i64; - let List.659 : [C {}, C Str] = CallByName List.2 List.391 List.666; - let List.663 : U8 = 1i64; - let List.664 : U8 = GetTagId List.659; - let List.665 : Int1 = lowlevel Eq List.663 List.664; - if List.665 then - let List.392 : Str = UnionAtIndex (Id 1) (Index 0) List.659; - let List.660 : [C {}, C Str] = TagId(1) List.392; - ret List.660; + let List.672 : U64 = 0i64; + let List.665 : [C {}, C Str] = CallByName List.2 List.391 List.672; + let List.669 : U8 = 1i64; + let List.670 : U8 = GetTagId List.665; + let List.671 : Int1 = lowlevel Eq List.669 List.670; + if List.671 then + let List.392 : Str = UnionAtIndex (Id 1) (Index 0) List.665; + let List.666 : [C {}, C Str] = TagId(1) List.392; + ret List.666; else - dec List.659; - let List.662 : {} = Struct {}; - let List.661 : [C {}, C Str] = TagId(0) List.662; - ret List.661; + dec List.665; + let List.668 : {} = Struct {}; + let List.667 : [C {}, C Str] = TagId(0) List.668; + ret List.667; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/closure_in_list.txt b/crates/compiler/test_mono/generated/closure_in_list.txt index fba7754e40..b326b37918 100644 --- a/crates/compiler/test_mono/generated/closure_in_list.txt +++ b/crates/compiler/test_mono/generated/closure_in_list.txt @@ -1,6 +1,6 @@ procedure List.6 (#Attr.2): - let List.659 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.659; + let List.665 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.665; procedure Test.1 (Test.5): let Test.2 : I64 = 41i64; diff --git a/crates/compiler/test_mono/generated/compose_recursive_lambda_set_productive_nullable_wrapped.txt b/crates/compiler/test_mono/generated/compose_recursive_lambda_set_productive_nullable_wrapped.txt index c2faa3cbae..67ab79377c 100644 --- a/crates/compiler/test_mono/generated/compose_recursive_lambda_set_productive_nullable_wrapped.txt +++ b/crates/compiler/test_mono/generated/compose_recursive_lambda_set_productive_nullable_wrapped.txt @@ -3,34 +3,34 @@ procedure Bool.2 (): ret Bool.23; procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Int1 = CallByName List.66 List.174 List.177; - let List.179 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Int1 = CallByName List.66 List.174 List.177; + let List.179 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.668 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : [, C *self Int1, C *self Int1] = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : [, C *self Int1, C *self Int1] = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/dict.txt b/crates/compiler/test_mono/generated/dict.txt index 858017977d..b788c1cac0 100644 --- a/crates/compiler/test_mono/generated/dict.txt +++ b/crates/compiler/test_mono/generated/dict.txt @@ -26,8 +26,8 @@ procedure Dict.52 (): ret Dict.743; procedure List.6 (#Attr.2): - let List.659 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.659; + let List.665 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.665; procedure Num.75 (#Attr.2, #Attr.3): let Num.283 : U8 = lowlevel NumSubWrap #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/empty_list_of_function_type.txt b/crates/compiler/test_mono/generated/empty_list_of_function_type.txt index 68a456f58f..5ae351eca8 100644 --- a/crates/compiler/test_mono/generated/empty_list_of_function_type.txt +++ b/crates/compiler/test_mono/generated/empty_list_of_function_type.txt @@ -3,24 +3,24 @@ procedure Bool.1 (): ret Bool.23; procedure List.2 (List.119, List.120): - let List.665 : U64 = CallByName List.6 List.119; - let List.661 : Int1 = CallByName Num.22 List.120 List.665; - if List.661 then - let List.663 : {} = CallByName List.66 List.119 List.120; - let List.662 : [C {}, C {}] = TagId(1) List.663; - ret List.662; + let List.671 : U64 = CallByName List.6 List.119; + let List.667 : Int1 = CallByName Num.22 List.120 List.671; + if List.667 then + let List.669 : {} = CallByName List.66 List.119 List.120; + let List.668 : [C {}, C {}] = TagId(1) List.669; + ret List.668; else - let List.660 : {} = Struct {}; - let List.659 : [C {}, C {}] = TagId(0) List.660; - ret List.659; + let List.666 : {} = Struct {}; + let List.665 : [C {}, C {}] = TagId(0) List.666; + ret List.665; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.66 (#Attr.2, #Attr.3): - let List.664 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.664; + let List.670 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/encode.txt b/crates/compiler/test_mono/generated/encode.txt index 93c5591f8a..0c482651dd 100644 --- a/crates/compiler/test_mono/generated/encode.txt +++ b/crates/compiler/test_mono/generated/encode.txt @@ -1,16 +1,16 @@ procedure List.4 (List.135, List.136): - let List.662 : U64 = 1i64; - let List.660 : List U8 = CallByName List.70 List.135 List.662; - let List.659 : List U8 = CallByName List.71 List.660 List.136; - ret List.659; + let List.668 : U64 = 1i64; + let List.666 : List U8 = CallByName List.70 List.135 List.668; + let List.665 : List U8 = CallByName List.71 List.666 List.136; + ret List.665; procedure List.70 (#Attr.2, #Attr.3): - let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.663; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.661; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure Test.23 (Test.24, Test.35, Test.22): let Test.37 : List U8 = CallByName List.4 Test.24 Test.22; diff --git a/crates/compiler/test_mono/generated/encode_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/encode_derived_nested_record_string.txt index a648b584dd..d199081533 100644 --- a/crates/compiler/test_mono/generated/encode_derived_nested_record_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_nested_record_string.txt @@ -68,84 +68,84 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33): - joinpoint List.688 List.174 List.175 List.176 List.177 List.178: - let List.690 : Int1 = CallByName Num.22 List.177 List.178; - if List.690 then - let List.694 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.694; - let List.179 : List U8 = CallByName Test.71 List.175 List.694; - let List.693 : U64 = 1i64; - let List.692 : U64 = CallByName Num.51 List.177 List.693; - jump List.688 List.174 List.179 List.176 List.692 List.178; + joinpoint List.694 List.174 List.175 List.176 List.177 List.178: + let List.696 : Int1 = CallByName Num.22 List.177 List.178; + if List.696 then + let List.700 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.700; + let List.179 : List U8 = CallByName Test.71 List.175 List.700; + let List.699 : U64 = 1i64; + let List.698 : U64 = CallByName Num.51 List.177 List.699; + jump List.694 List.174 List.179 List.176 List.698 List.178; else dec List.174; ret List.175; in inc #Derived_gen.29; - jump List.688 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; + jump List.694 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; procedure List.100 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.71 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.71 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.37; - jump List.662 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; + jump List.668 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.18 (List.171, List.172, List.173): - let List.686 : U64 = 0i64; - let List.687 : U64 = CallByName List.6 List.171; - let List.685 : List U8 = CallByName List.100 List.171 List.172 List.173 List.686 List.687; - ret List.685; + let List.692 : U64 = 0i64; + let List.693 : U64 = CallByName List.6 List.171; + let List.691 : List U8 = CallByName List.100 List.171 List.172 List.173 List.692 List.693; + ret List.691; procedure List.4 (List.135, List.136): - let List.707 : U64 = 1i64; - let List.706 : List U8 = CallByName List.70 List.135 List.707; - let List.705 : List U8 = CallByName List.71 List.706 List.136; - ret List.705; + let List.713 : U64 = 1i64; + let List.712 : List U8 = CallByName List.70 List.135 List.713; + let List.711 : List U8 = CallByName List.71 List.712 List.136; + ret List.711; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.6 (#Attr.2): - let List.710 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.710; + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.716; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.66 (#Attr.2, #Attr.3): - let List.695 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.695; + let List.701 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.701; procedure List.70 (#Attr.2, #Attr.3): - let List.701 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.701; + let List.707 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.707; procedure List.71 (#Attr.2, #Attr.3): - let List.699 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.699; + let List.705 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.705; procedure List.8 (#Attr.2, #Attr.3): - let List.709 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.709; + let List.715 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.715; procedure Num.127 (#Attr.2): let Num.288 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/encode_derived_record_one_field_string.txt b/crates/compiler/test_mono/generated/encode_derived_record_one_field_string.txt index 2602e9bef3..562d37b3e5 100644 --- a/crates/compiler/test_mono/generated/encode_derived_record_one_field_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_record_one_field_string.txt @@ -40,53 +40,53 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.71 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.71 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.16; - jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.668 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.4 (List.135, List.136): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.135 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.136; - ret List.679; + let List.687 : U64 = 1i64; + let List.686 : List U8 = CallByName List.70 List.135 List.687; + let List.685 : List U8 = CallByName List.71 List.686 List.136; + ret List.685; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.679; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.689; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/encode_derived_record_two_field_strings.txt b/crates/compiler/test_mono/generated/encode_derived_record_two_field_strings.txt index ca50badd27..0cd1742c56 100644 --- a/crates/compiler/test_mono/generated/encode_derived_record_two_field_strings.txt +++ b/crates/compiler/test_mono/generated/encode_derived_record_two_field_strings.txt @@ -47,53 +47,53 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.71 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.71 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.20; - jump List.662 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + jump List.668 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.4 (List.135, List.136): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.135 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.136; - ret List.679; + let List.687 : U64 = 1i64; + let List.686 : List U8 = CallByName List.70 List.135 List.687; + let List.685 : List U8 = CallByName List.71 List.686 List.136; + ret List.685; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.679; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.689; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/encode_derived_string.txt b/crates/compiler/test_mono/generated/encode_derived_string.txt index ef13c04bd8..6a3b955bb7 100644 --- a/crates/compiler/test_mono/generated/encode_derived_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_string.txt @@ -12,22 +12,22 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.4 (List.135, List.136): - let List.669 : U64 = 1i64; - let List.668 : List U8 = CallByName List.70 List.135 List.669; - let List.667 : List U8 = CallByName List.71 List.668 List.136; - ret List.667; + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.135 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.136; + ret List.673; procedure List.70 (#Attr.2, #Attr.3): - let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.663; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.661; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.671 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.671; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/encode_derived_tag_one_field_string.txt b/crates/compiler/test_mono/generated/encode_derived_tag_one_field_string.txt index 516b6c2f7d..5d88ff283f 100644 --- a/crates/compiler/test_mono/generated/encode_derived_tag_one_field_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_tag_one_field_string.txt @@ -41,57 +41,57 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Str = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.64 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Str = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.64 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.22; - jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; + jump List.668 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; procedure List.13 (#Attr.2, #Attr.3): - let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.685; + let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.691; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.4 (List.135, List.136): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.135 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.136; - ret List.679; + let List.687 : U64 = 1i64; + let List.686 : List U8 = CallByName List.70 List.135 List.687; + let List.685 : List U8 = CallByName List.71 List.686 List.136; + ret List.685; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.679; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.689; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/encode_derived_tag_two_payloads_string.txt b/crates/compiler/test_mono/generated/encode_derived_tag_two_payloads_string.txt index 3884deecf1..b51e262c6f 100644 --- a/crates/compiler/test_mono/generated/encode_derived_tag_two_payloads_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_tag_two_payloads_string.txt @@ -44,57 +44,57 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Str = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.64 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Str = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.64 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.23; - jump List.662 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + jump List.668 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; procedure List.13 (#Attr.2, #Attr.3): - let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.685; + let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.691; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.4 (List.135, List.136): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.135 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.136; - ret List.679; + let List.687 : U64 = 1i64; + let List.686 : List U8 = CallByName List.70 List.135 List.687; + let List.685 : List U8 = CallByName List.71 List.686 List.136; + ret List.685; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.679; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.689; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/inspect_derived_dict.txt b/crates/compiler/test_mono/generated/inspect_derived_dict.txt index d871c828ff..2a287b8b8b 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -891,170 +891,170 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.726 List.174 List.175 List.176 List.177 List.178: - let List.728 : Int1 = CallByName Num.22 List.177 List.178; - if List.728 then - let List.732 : {Str, I64} = CallByName List.66 List.174 List.177; - inc List.732; - let List.179 : {Str, Int1} = CallByName Dict.188 List.175 List.732 List.176; - let List.731 : U64 = 1i64; - let List.730 : U64 = CallByName Num.51 List.177 List.731; - jump List.726 List.174 List.179 List.176 List.730 List.178; + joinpoint List.732 List.174 List.175 List.176 List.177 List.178: + let List.734 : Int1 = CallByName Num.22 List.177 List.178; + if List.734 then + let List.738 : {Str, I64} = CallByName List.66 List.174 List.177; + inc List.738; + let List.179 : {Str, Int1} = CallByName Dict.188 List.175 List.738 List.176; + let List.737 : U64 = 1i64; + let List.736 : U64 = CallByName Num.51 List.177 List.737; + jump List.732 List.174 List.179 List.176 List.736 List.178; else dec List.174; ret List.175; in inc #Derived_gen.40; - jump List.726 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; + jump List.732 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; procedure List.100 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, I64} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, I64} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.61; - jump List.662 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; + jump List.668 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; procedure List.101 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25): - joinpoint List.701 List.183 List.184 List.185 List.186 List.187: - let List.703 : Int1 = CallByName Num.22 List.186 List.187; - if List.703 then - let List.707 : {Str, I64} = CallByName List.66 List.183 List.186; - inc List.707; - let List.188 : List {U32, U32} = CallByName Dict.406 List.184 List.707 List.186 List.185; - let List.706 : U64 = 1i64; - let List.705 : U64 = CallByName Num.51 List.186 List.706; - jump List.701 List.183 List.188 List.185 List.705 List.187; + joinpoint List.707 List.183 List.184 List.185 List.186 List.187: + let List.709 : Int1 = CallByName Num.22 List.186 List.187; + if List.709 then + let List.713 : {Str, I64} = CallByName List.66 List.183 List.186; + inc List.713; + let List.188 : List {U32, U32} = CallByName Dict.406 List.184 List.713 List.186 List.185; + let List.712 : U64 = 1i64; + let List.711 : U64 = CallByName Num.51 List.186 List.712; + jump List.707 List.183 List.188 List.185 List.711 List.187; else dec List.183; ret List.184; in inc #Derived_gen.21; - jump List.701 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; + jump List.707 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; procedure List.11 (List.149, List.150): - let List.721 : List {U32, U32} = CallByName List.68 List.150; - let List.720 : List {U32, U32} = CallByName List.98 List.149 List.150 List.721; - ret List.720; + let List.727 : List {U32, U32} = CallByName List.68 List.150; + let List.726 : List {U32, U32} = CallByName List.98 List.149 List.150 List.727; + ret List.726; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.18 (List.171, List.172, List.173): - let List.724 : U64 = 0i64; - let List.725 : U64 = CallByName List.6 List.171; - let List.723 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.724 List.725; - ret List.723; + let List.730 : U64 = 0i64; + let List.731 : U64 = CallByName List.6 List.171; + let List.729 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.730 List.731; + ret List.729; procedure List.3 (List.127, List.128, List.129): - let List.685 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.127 List.128 List.129; - let List.684 : List {U32, U32} = StructAtIndex 0 List.685; - ret List.684; + let List.691 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.127 List.128 List.129; + let List.690 : List {U32, U32} = StructAtIndex 0 List.691; + ret List.690; procedure List.3 (List.127, List.128, List.129): - let List.687 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.127 List.128 List.129; - let List.686 : List {Str, I64} = StructAtIndex 0 List.687; - let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.687; + let List.693 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.127 List.128 List.129; + let List.692 : List {Str, I64} = StructAtIndex 0 List.693; + let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.693; dec #Derived_gen.71; - ret List.686; + ret List.692; procedure List.4 (List.135, List.136): - let List.696 : U64 = 1i64; - let List.694 : List {Str, I64} = CallByName List.70 List.135 List.696; - let List.693 : List {Str, I64} = CallByName List.71 List.694 List.136; - ret List.693; + let List.702 : U64 = 1i64; + let List.700 : List {Str, I64} = CallByName List.70 List.135 List.702; + let List.699 : List {Str, I64} = CallByName List.71 List.700 List.136; + ret List.699; procedure List.6 (#Attr.2): - let List.675 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.675; + let List.681 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.681; procedure List.6 (#Attr.2): - let List.722 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.722; + let List.728 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.728; procedure List.6 (#Attr.2): - let List.734 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.734; + let List.740 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.740; procedure List.64 (List.124, List.125, List.126): - let List.683 : U64 = CallByName List.6 List.124; - let List.680 : Int1 = CallByName Num.22 List.125 List.683; - if List.680 then - let List.681 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.124 List.125 List.126; - ret List.681; + let List.689 : U64 = CallByName List.6 List.124; + let List.686 : Int1 = CallByName Num.22 List.125 List.689; + if List.686 then + let List.687 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.124 List.125 List.126; + ret List.687; else - let List.679 : {List {U32, U32}, {U32, U32}} = Struct {List.124, List.126}; - ret List.679; + let List.685 : {List {U32, U32}, {U32, U32}} = Struct {List.124, List.126}; + ret List.685; procedure List.64 (List.124, List.125, List.126): - let List.692 : U64 = CallByName List.6 List.124; - let List.689 : Int1 = CallByName Num.22 List.125 List.692; - if List.689 then - let List.690 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.124 List.125 List.126; - ret List.690; + let List.698 : U64 = CallByName List.6 List.124; + let List.695 : Int1 = CallByName Num.22 List.125 List.698; + if List.695 then + let List.696 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.124 List.125 List.126; + ret List.696; else - let List.688 : {List {Str, I64}, {Str, I64}} = Struct {List.124, List.126}; - ret List.688; + let List.694 : {List {Str, I64}, {Str, I64}} = Struct {List.124, List.126}; + ret List.694; procedure List.66 (#Attr.2, #Attr.3): - let List.733 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.733; + let List.739 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.739; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.682 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.682; + let List.688 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.688; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.691 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.691; + let List.697 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.697; procedure List.68 (#Attr.2): - let List.719 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; - ret List.719; + let List.725 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.725; procedure List.70 (#Attr.2, #Attr.3): - let List.697 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.697; + let List.703 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.703; procedure List.71 (#Attr.2, #Attr.3): - let List.695 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.695; + let List.701 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.701; procedure List.71 (#Attr.2, #Attr.3): - let List.716 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.716; + let List.722 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.722; procedure List.83 (List.180, List.181, List.182): - let List.699 : U64 = 0i64; - let List.700 : U64 = CallByName List.6 List.180; - let List.698 : List {U32, U32} = CallByName List.101 List.180 List.181 List.182 List.699 List.700; - ret List.698; + let List.705 : U64 = 0i64; + let List.706 : U64 = CallByName List.6 List.180; + let List.704 : List {U32, U32} = CallByName List.101 List.180 List.181 List.182 List.705 List.706; + ret List.704; procedure List.98 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.710 List.151 List.152 List.153: - let List.718 : U64 = 0i64; - let List.712 : Int1 = CallByName Num.24 List.152 List.718; - if List.712 then - let List.717 : U64 = 1i64; - let List.714 : U64 = CallByName Num.75 List.152 List.717; - let List.715 : List {U32, U32} = CallByName List.71 List.153 List.151; - jump List.710 List.151 List.714 List.715; + joinpoint List.716 List.151 List.152 List.153: + let List.724 : U64 = 0i64; + let List.718 : Int1 = CallByName Num.24 List.152 List.724; + if List.718 then + let List.723 : U64 = 1i64; + let List.720 : U64 = CallByName Num.75 List.152 List.723; + let List.721 : List {U32, U32} = CallByName List.71 List.153 List.151; + jump List.716 List.151 List.720 List.721; else ret List.153; in - jump List.710 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + jump List.716 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; procedure Num.131 (#Attr.2): let Num.291 : U32 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/inspect_derived_list.txt b/crates/compiler/test_mono/generated/inspect_derived_list.txt index d18566e1a5..fcdffbea8e 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -136,34 +136,34 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : I64 = CallByName List.66 List.174 List.177; - let List.179 : {Str, Int1} = CallByName Inspect.160 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : I64 = CallByName List.66 List.174 List.177; + let List.179 : {Str, Int1} = CallByName Inspect.160 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.8; - jump List.662 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; + jump List.668 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt index 216ee228d0..41a69e36ab 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt @@ -222,66 +222,66 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.30; - jump List.662 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34; + jump List.668 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34; procedure List.100 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47): - joinpoint List.674 List.174 List.175 List.176 List.177 List.178: - let List.676 : Int1 = CallByName Num.22 List.177 List.178; - if List.676 then - let List.680 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.680; - let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.680; - let List.679 : U64 = 1i64; - let List.678 : U64 = CallByName Num.51 List.177 List.679; - jump List.674 List.174 List.179 List.176 List.678 List.178; + joinpoint List.680 List.174 List.175 List.176 List.177 List.178: + let List.682 : Int1 = CallByName Num.22 List.177 List.178; + if List.682 then + let List.686 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.686; + let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.686; + let List.685 : U64 = 1i64; + let List.684 : U64 = CallByName Num.51 List.177 List.685; + jump List.680 List.174 List.179 List.176 List.684 List.178; else dec List.174; ret List.175; in inc #Derived_gen.43; - jump List.674 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; + jump List.680 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.18 (List.171, List.172, List.173): - let List.672 : U64 = 0i64; - let List.673 : U64 = CallByName List.6 List.171; - let List.671 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.672 List.673; - ret List.671; + let List.678 : U64 = 0i64; + let List.679 : U64 = CallByName List.6 List.171; + let List.677 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.678 List.679; + ret List.677; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.6 (#Attr.2): - let List.682 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.682; + let List.688 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.688; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.66 (#Attr.2, #Attr.3): - let List.681 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.681; + let List.687 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.687; procedure Num.22 (#Attr.2, #Attr.3): let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_record.txt b/crates/compiler/test_mono/generated/inspect_derived_record.txt index 733ac279d0..47fe736829 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -162,35 +162,35 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {[C I64, C Decimal], Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {[C I64, C Decimal], Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.22; - jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; + jump List.668 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt index 57ecab3be2..3cc1aefd2b 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt @@ -140,35 +140,35 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.12; - jump List.662 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + jump List.668 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_record_two_field_strings.txt b/crates/compiler/test_mono/generated/inspect_derived_record_two_field_strings.txt index e22c7a4dfc..a6ae504494 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record_two_field_strings.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record_two_field_strings.txt @@ -147,35 +147,35 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.16; - jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.668 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_tag_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_tag_one_field_string.txt index feb5992b99..8756198db0 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_tag_one_field_string.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_tag_one_field_string.txt @@ -133,42 +133,42 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.1 (List.118): - let List.672 : U64 = CallByName List.6 List.118; - let List.673 : U64 = 0i64; - let List.671 : Int1 = CallByName Bool.11 List.672 List.673; - ret List.671; + let List.678 : U64 = CallByName List.6 List.118; + let List.679 : U64 = 0i64; + let List.677 : Int1 = CallByName Bool.11 List.678 List.679; + ret List.677; procedure List.100 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Str = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : Str = CallByName Inspect.210 List.175 List.668; - dec List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Str = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : Str = CallByName Inspect.210 List.175 List.674; + dec List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.14; - jump List.662 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + jump List.668 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : Str = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : Str = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/inspect_derived_tag_two_payloads_string.txt b/crates/compiler/test_mono/generated/inspect_derived_tag_two_payloads_string.txt index bf7dbeabbb..1183f3a741 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_tag_two_payloads_string.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_tag_two_payloads_string.txt @@ -136,42 +136,42 @@ procedure Inspect.64 (Inspect.302): ret Inspect.302; procedure List.1 (List.118): - let List.672 : U64 = CallByName List.6 List.118; - let List.673 : U64 = 0i64; - let List.671 : Int1 = CallByName Bool.11 List.672 List.673; - ret List.671; + let List.678 : U64 = CallByName List.6 List.118; + let List.679 : U64 = 0i64; + let List.677 : Int1 = CallByName Bool.11 List.678 List.679; + ret List.677; procedure List.100 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Str = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : Str = CallByName Inspect.210 List.175 List.668; - dec List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Str = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : Str = CallByName Inspect.210 List.175 List.674; + dec List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.13; - jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.668 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : Str = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : Str = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/ir_int_add.txt b/crates/compiler/test_mono/generated/ir_int_add.txt index babdfd38d2..3fbaf57ab4 100644 --- a/crates/compiler/test_mono/generated/ir_int_add.txt +++ b/crates/compiler/test_mono/generated/ir_int_add.txt @@ -1,6 +1,6 @@ procedure List.6 (#Attr.2): - let List.659 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.659; + let List.665 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.665; procedure Num.19 (#Attr.2, #Attr.3): let Num.285 : U64 = lowlevel NumAdd #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt index b829a10792..d62ad02bc3 100644 --- a/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt +++ b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt @@ -7,39 +7,39 @@ procedure Bool.2 (): ret Bool.23; procedure List.2 (List.119, List.120): - let List.673 : U64 = CallByName List.6 List.119; - let List.669 : Int1 = CallByName Num.22 List.120 List.673; - if List.669 then - let List.671 : I64 = CallByName List.66 List.119 List.120; - let List.670 : [C {}, C I64] = TagId(1) List.671; - ret List.670; + let List.679 : U64 = CallByName List.6 List.119; + let List.675 : Int1 = CallByName Num.22 List.120 List.679; + if List.675 then + let List.677 : I64 = CallByName List.66 List.119 List.120; + let List.676 : [C {}, C I64] = TagId(1) List.677; + ret List.676; else - let List.668 : {} = Struct {}; - let List.667 : [C {}, C I64] = TagId(0) List.668; - ret List.667; + let List.674 : {} = Struct {}; + let List.673 : [C {}, C I64] = TagId(0) List.674; + ret List.673; procedure List.6 (#Attr.2): - let List.674 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.674; + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.9 (List.391): - let List.666 : U64 = 0i64; - let List.659 : [C {}, C I64] = CallByName List.2 List.391 List.666; - let List.663 : U8 = 1i64; - let List.664 : U8 = GetTagId List.659; - let List.665 : Int1 = lowlevel Eq List.663 List.664; - if List.665 then - let List.392 : I64 = UnionAtIndex (Id 1) (Index 0) List.659; - let List.660 : [C Int1, C I64] = TagId(1) List.392; - ret List.660; + let List.672 : U64 = 0i64; + let List.665 : [C {}, C I64] = CallByName List.2 List.391 List.672; + let List.669 : U8 = 1i64; + let List.670 : U8 = GetTagId List.665; + let List.671 : Int1 = lowlevel Eq List.669 List.670; + if List.671 then + let List.392 : I64 = UnionAtIndex (Id 1) (Index 0) List.665; + let List.666 : [C Int1, C I64] = TagId(1) List.392; + ret List.666; else - let List.662 : Int1 = true; - let List.661 : [C Int1, C I64] = TagId(0) List.662; - ret List.661; + let List.668 : Int1 = true; + let List.667 : [C Int1, C I64] = TagId(0) List.668; + ret List.667; procedure Num.22 (#Attr.2, #Attr.3): let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/issue_4770.txt b/crates/compiler/test_mono/generated/issue_4770.txt index c333477a73..9106e10f4f 100644 --- a/crates/compiler/test_mono/generated/issue_4770.txt +++ b/crates/compiler/test_mono/generated/issue_4770.txt @@ -7,18 +7,18 @@ procedure Bool.2 (): ret Bool.24; procedure List.105 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.697 List.290 List.291 List.292 List.293 List.294 List.295: - let List.699 : Int1 = CallByName Num.22 List.294 List.295; - if List.699 then - let List.705 : [C I64, C List *self] = CallByName List.66 List.290 List.294; - inc List.705; - let List.706 : [C I64, C List *self] = CallByName List.66 List.291 List.294; - inc List.706; - let List.296 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.705 List.706; - let List.701 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.292 List.296; - let List.703 : U64 = 1i64; - let List.702 : U64 = CallByName Num.51 List.294 List.703; - jump List.697 List.290 List.291 List.701 List.293 List.702 List.295; + joinpoint List.703 List.290 List.291 List.292 List.293 List.294 List.295: + let List.705 : Int1 = CallByName Num.22 List.294 List.295; + if List.705 then + let List.711 : [C I64, C List *self] = CallByName List.66 List.290 List.294; + inc List.711; + let List.712 : [C I64, C List *self] = CallByName List.66 List.291 List.294; + inc List.712; + let List.296 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.711 List.712; + let List.707 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.292 List.296; + let List.709 : U64 = 1i64; + let List.708 : U64 = CallByName Num.51 List.294 List.709; + jump List.703 List.290 List.291 List.707 List.293 List.708 List.295; else dec List.291; dec List.290; @@ -26,98 +26,98 @@ procedure List.105 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen in inc #Derived_gen.6; inc #Derived_gen.7; - jump List.697 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + jump List.703 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; procedure List.115 (List.562, List.563, List.564): - let List.673 : U64 = 0i64; - let List.674 : U64 = CallByName List.6 List.562; - let List.672 : [C {}, C {}] = CallByName List.80 List.562 List.563 List.564 List.673 List.674; - ret List.672; + let List.679 : U64 = 0i64; + let List.680 : U64 = CallByName List.6 List.562; + let List.678 : [C {}, C {}] = CallByName List.80 List.562 List.563 List.564 List.679 List.680; + ret List.678; procedure List.23 (List.286, List.287, List.288): - let List.709 : U64 = CallByName List.6 List.286; - let List.710 : U64 = CallByName List.6 List.287; - let List.289 : U64 = CallByName Num.148 List.709 List.710; - let List.695 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.289; - let List.696 : U64 = 0i64; - let List.694 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.105 List.286 List.287 List.695 List.288 List.696 List.289; - ret List.694; - -procedure List.247 (List.661, List.248, List.246): - let List.691 : Int1 = CallByName Test.1 List.248; - if List.691 then - let List.693 : {} = Struct {}; - let List.692 : [C {}, C {}] = TagId(1) List.693; - ret List.692; + let List.715 : U64 = CallByName List.6 List.286; + let List.716 : U64 = CallByName List.6 List.287; + let List.289 : U64 = CallByName Num.148 List.715 List.716; + let List.701 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.289; + let List.702 : U64 = 0i64; + let List.700 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.105 List.286 List.287 List.701 List.288 List.702 List.289; + ret List.700; + +procedure List.247 (List.667, List.248, List.246): + let List.697 : Int1 = CallByName Test.1 List.248; + if List.697 then + let List.699 : {} = Struct {}; + let List.698 : [C {}, C {}] = TagId(1) List.699; + ret List.698; else - let List.690 : {} = Struct {}; - let List.689 : [C {}, C {}] = TagId(0) List.690; - ret List.689; + let List.696 : {} = Struct {}; + let List.695 : [C {}, C {}] = TagId(0) List.696; + ret List.695; procedure List.56 (List.245, List.246): - let List.670 : {} = Struct {}; - let List.662 : [C {}, C {}] = CallByName List.115 List.245 List.670 List.246; - let List.667 : U8 = 1i64; - let List.668 : U8 = GetTagId List.662; - let List.669 : Int1 = lowlevel Eq List.667 List.668; - if List.669 then - let List.663 : Int1 = CallByName Bool.2; - ret List.663; + let List.676 : {} = Struct {}; + let List.668 : [C {}, C {}] = CallByName List.115 List.245 List.676 List.246; + let List.673 : U8 = 1i64; + let List.674 : U8 = GetTagId List.668; + let List.675 : Int1 = lowlevel Eq List.673 List.674; + if List.675 then + let List.669 : Int1 = CallByName Bool.2; + ret List.669; else - let List.664 : Int1 = CallByName Bool.1; - ret List.664; + let List.670 : Int1 = CallByName Bool.1; + ret List.670; procedure List.6 (#Attr.2): - let List.660 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.660; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.6 (#Attr.2): - let List.688 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.688; + let List.694 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.694; procedure List.66 (#Attr.2, #Attr.3): - let List.687 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.687; + let List.693 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.693; procedure List.66 (#Attr.2, #Attr.3): - let List.707 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.713 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.713; procedure List.68 (#Attr.2): - let List.708 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; - ret List.708; + let List.714 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.714; procedure List.71 (#Attr.2, #Attr.3): - let List.704 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.710 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.710; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.675 List.565 List.566 List.567 List.568 List.569: - let List.677 : Int1 = CallByName Num.22 List.568 List.569; - if List.677 then - let List.686 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.565 List.568; - inc List.686; - let List.678 : [C {}, C {}] = CallByName List.247 List.566 List.686 List.567; - let List.683 : U8 = 1i64; - let List.684 : U8 = GetTagId List.678; - let List.685 : Int1 = lowlevel Eq List.683 List.684; - if List.685 then - let List.570 : {} = UnionAtIndex (Id 1) (Index 0) List.678; - let List.681 : U64 = 1i64; - let List.680 : U64 = CallByName Num.51 List.568 List.681; - jump List.675 List.565 List.570 List.567 List.680 List.569; + joinpoint List.681 List.565 List.566 List.567 List.568 List.569: + let List.683 : Int1 = CallByName Num.22 List.568 List.569; + if List.683 then + let List.692 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.565 List.568; + inc List.692; + let List.684 : [C {}, C {}] = CallByName List.247 List.566 List.692 List.567; + let List.689 : U8 = 1i64; + let List.690 : U8 = GetTagId List.684; + let List.691 : Int1 = lowlevel Eq List.689 List.690; + if List.691 then + let List.570 : {} = UnionAtIndex (Id 1) (Index 0) List.684; + let List.687 : U64 = 1i64; + let List.686 : U64 = CallByName Num.51 List.568 List.687; + jump List.681 List.565 List.570 List.567 List.686 List.569; else dec List.565; - let List.571 : {} = UnionAtIndex (Id 0) (Index 0) List.678; - let List.682 : [C {}, C {}] = TagId(0) List.571; - ret List.682; + let List.571 : {} = UnionAtIndex (Id 0) (Index 0) List.684; + let List.688 : [C {}, C {}] = TagId(0) List.571; + ret List.688; else dec List.565; - let List.676 : [C {}, C {}] = TagId(1) List.566; - ret List.676; + let List.682 : [C {}, C {}] = TagId(1) List.566; + ret List.682; in inc #Derived_gen.0; - jump List.675 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.148 (Num.226, Num.227): let Num.290 : Int1 = CallByName Num.22 Num.226 Num.227; diff --git a/crates/compiler/test_mono/generated/layout_cache_structure_with_multiple_recursive_structures.txt b/crates/compiler/test_mono/generated/layout_cache_structure_with_multiple_recursive_structures.txt index d685eeb2e0..671993f128 100644 --- a/crates/compiler/test_mono/generated/layout_cache_structure_with_multiple_recursive_structures.txt +++ b/crates/compiler/test_mono/generated/layout_cache_structure_with_multiple_recursive_structures.txt @@ -1,33 +1,33 @@ procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : [C *self, ] = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : [, C {[C *self, ], *self}] = CallByName Test.7 List.175 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : [C *self, ] = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : [, C {[C *self, ], *self}] = CallByName Test.7 List.175 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.668 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : [, C {[C *self, ], *self}] = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : [, C {[C *self, ], *self}] = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.670 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.670; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_append.txt b/crates/compiler/test_mono/generated/list_append.txt index a5c611f6db..43dd147f54 100644 --- a/crates/compiler/test_mono/generated/list_append.txt +++ b/crates/compiler/test_mono/generated/list_append.txt @@ -1,16 +1,16 @@ procedure List.4 (List.135, List.136): - let List.662 : U64 = 1i64; - let List.660 : List I64 = CallByName List.70 List.135 List.662; - let List.659 : List I64 = CallByName List.71 List.660 List.136; - ret List.659; + let List.668 : U64 = 1i64; + let List.666 : List I64 = CallByName List.70 List.135 List.668; + let List.665 : List I64 = CallByName List.71 List.666 List.136; + ret List.665; procedure List.70 (#Attr.2, #Attr.3): - let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.663; + let List.669 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.661; + let List.667 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure Test.0 (): let Test.2 : List I64 = Array [1i64]; diff --git a/crates/compiler/test_mono/generated/list_append_closure.txt b/crates/compiler/test_mono/generated/list_append_closure.txt index f49997065b..ba3983e362 100644 --- a/crates/compiler/test_mono/generated/list_append_closure.txt +++ b/crates/compiler/test_mono/generated/list_append_closure.txt @@ -1,16 +1,16 @@ procedure List.4 (List.135, List.136): - let List.662 : U64 = 1i64; - let List.660 : List I64 = CallByName List.70 List.135 List.662; - let List.659 : List I64 = CallByName List.71 List.660 List.136; - ret List.659; + let List.668 : U64 = 1i64; + let List.666 : List I64 = CallByName List.70 List.135 List.668; + let List.665 : List I64 = CallByName List.71 List.666 List.136; + ret List.665; procedure List.70 (#Attr.2, #Attr.3): - let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.663; + let List.669 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.661; + let List.667 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure Test.1 (Test.2): let Test.6 : I64 = 42i64; diff --git a/crates/compiler/test_mono/generated/list_cannot_update_inplace.txt b/crates/compiler/test_mono/generated/list_cannot_update_inplace.txt index b983046bce..59f9355977 100644 --- a/crates/compiler/test_mono/generated/list_cannot_update_inplace.txt +++ b/crates/compiler/test_mono/generated/list_cannot_update_inplace.txt @@ -1,25 +1,25 @@ procedure List.3 (List.127, List.128, List.129): - let List.662 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; - let List.661 : List I64 = StructAtIndex 0 List.662; - ret List.661; + let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; + let List.667 : List I64 = StructAtIndex 0 List.668; + ret List.667; procedure List.6 (#Attr.2): - let List.660 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.660; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.64 (List.124, List.125, List.126): - let List.667 : U64 = CallByName List.6 List.124; - let List.664 : Int1 = CallByName Num.22 List.125 List.667; - if List.664 then - let List.665 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; - ret List.665; + let List.673 : U64 = CallByName List.6 List.124; + let List.670 : Int1 = CallByName Num.22 List.125 List.673; + if List.670 then + let List.671 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; + ret List.671; else - let List.663 : {List I64, I64} = Struct {List.124, List.126}; - ret List.663; + let List.669 : {List I64, I64} = Struct {List.124, List.126}; + ret List.669; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.666 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.666; + let List.672 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.672; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_get.txt b/crates/compiler/test_mono/generated/list_get.txt index 864e5d9aca..3de2d201b2 100644 --- a/crates/compiler/test_mono/generated/list_get.txt +++ b/crates/compiler/test_mono/generated/list_get.txt @@ -1,22 +1,22 @@ procedure List.2 (List.119, List.120): - let List.665 : U64 = CallByName List.6 List.119; - let List.661 : Int1 = CallByName Num.22 List.120 List.665; - if List.661 then - let List.663 : I64 = CallByName List.66 List.119 List.120; - let List.662 : [C {}, C I64] = TagId(1) List.663; - ret List.662; + let List.671 : U64 = CallByName List.6 List.119; + let List.667 : Int1 = CallByName Num.22 List.120 List.671; + if List.667 then + let List.669 : I64 = CallByName List.66 List.119 List.120; + let List.668 : [C {}, C I64] = TagId(1) List.669; + ret List.668; else - let List.660 : {} = Struct {}; - let List.659 : [C {}, C I64] = TagId(0) List.660; - ret List.659; + let List.666 : {} = Struct {}; + let List.665 : [C {}, C I64] = TagId(0) List.666; + ret List.665; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.66 (#Attr.2, #Attr.3): - let List.664 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.664; + let List.670 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_len.txt b/crates/compiler/test_mono/generated/list_len.txt index 10673e6390..5fa13af048 100644 --- a/crates/compiler/test_mono/generated/list_len.txt +++ b/crates/compiler/test_mono/generated/list_len.txt @@ -1,10 +1,10 @@ procedure List.6 (#Attr.2): - let List.659 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.659; + let List.665 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.665; procedure List.6 (#Attr.2): - let List.660 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.660; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_map_closure_borrows.txt b/crates/compiler/test_mono/generated/list_map_closure_borrows.txt index e64c144098..8205852849 100644 --- a/crates/compiler/test_mono/generated/list_map_closure_borrows.txt +++ b/crates/compiler/test_mono/generated/list_map_closure_borrows.txt @@ -1,66 +1,66 @@ procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.673 List.174 List.175 List.176 List.177 List.178: - let List.675 : Int1 = CallByName Num.22 List.177 List.178; - if List.675 then - let List.679 : Str = CallByName List.66 List.174 List.177; - inc List.679; - let List.179 : List Str = CallByName List.283 List.175 List.679 List.176; - dec List.679; - let List.678 : U64 = 1i64; - let List.677 : U64 = CallByName Num.51 List.177 List.678; - jump List.673 List.174 List.179 List.176 List.677 List.178; + joinpoint List.679 List.174 List.175 List.176 List.177 List.178: + let List.681 : Int1 = CallByName Num.22 List.177 List.178; + if List.681 then + let List.685 : Str = CallByName List.66 List.174 List.177; + inc List.685; + let List.179 : List Str = CallByName List.283 List.175 List.685 List.176; + dec List.685; + let List.684 : U64 = 1i64; + let List.683 : U64 = CallByName Num.51 List.177 List.684; + jump List.679 List.174 List.179 List.176 List.683 List.178; else dec List.174; ret List.175; in inc #Derived_gen.3; - jump List.673 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + jump List.679 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure List.18 (List.171, List.172, List.173): - let List.671 : U64 = 0i64; - let List.672 : U64 = CallByName List.6 List.171; - let List.670 : List Str = CallByName List.100 List.171 List.172 List.173 List.671 List.672; - ret List.670; + let List.677 : U64 = 0i64; + let List.678 : U64 = CallByName List.6 List.171; + let List.676 : List Str = CallByName List.100 List.171 List.172 List.173 List.677 List.678; + ret List.676; procedure List.2 (List.119, List.120): - let List.665 : U64 = CallByName List.6 List.119; - let List.661 : Int1 = CallByName Num.22 List.120 List.665; - if List.661 then - let List.663 : Str = CallByName List.66 List.119 List.120; - inc List.663; - let List.662 : [C {}, C Str] = TagId(1) List.663; - ret List.662; + let List.671 : U64 = CallByName List.6 List.119; + let List.667 : Int1 = CallByName Num.22 List.120 List.671; + if List.667 then + let List.669 : Str = CallByName List.66 List.119 List.120; + inc List.669; + let List.668 : [C {}, C Str] = TagId(1) List.669; + ret List.668; else - let List.660 : {} = Struct {}; - let List.659 : [C {}, C Str] = TagId(0) List.660; - ret List.659; + let List.666 : {} = Struct {}; + let List.665 : [C {}, C Str] = TagId(0) List.666; + ret List.665; procedure List.283 (List.284, List.285, List.281): - let List.682 : Str = CallByName Test.3 List.285; - let List.681 : List Str = CallByName List.71 List.284 List.682; - ret List.681; + let List.688 : Str = CallByName Test.3 List.285; + let List.687 : List Str = CallByName List.71 List.284 List.688; + ret List.687; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.668 : List Str = CallByName List.68 List.282; - let List.667 : List Str = CallByName List.18 List.280 List.668 List.281; - ret List.667; + let List.674 : List Str = CallByName List.68 List.282; + let List.673 : List Str = CallByName List.18 List.280 List.674 List.281; + ret List.673; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.66 (#Attr.2, #Attr.3): - let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.664; + let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.670; procedure List.68 (#Attr.2): - let List.684 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.684; + let List.690 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.690; procedure List.71 (#Attr.2, #Attr.3): - let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.683; + let List.689 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.689; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_map_closure_owns.txt b/crates/compiler/test_mono/generated/list_map_closure_owns.txt index f573a1fb7a..b40b7c1f59 100644 --- a/crates/compiler/test_mono/generated/list_map_closure_owns.txt +++ b/crates/compiler/test_mono/generated/list_map_closure_owns.txt @@ -1,65 +1,65 @@ procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.673 List.174 List.175 List.176 List.177 List.178: - let List.675 : Int1 = CallByName Num.22 List.177 List.178; - if List.675 then - let List.679 : Str = CallByName List.66 List.174 List.177; - inc List.679; - let List.179 : List Str = CallByName List.283 List.175 List.679 List.176; - let List.678 : U64 = 1i64; - let List.677 : U64 = CallByName Num.51 List.177 List.678; - jump List.673 List.174 List.179 List.176 List.677 List.178; + joinpoint List.679 List.174 List.175 List.176 List.177 List.178: + let List.681 : Int1 = CallByName Num.22 List.177 List.178; + if List.681 then + let List.685 : Str = CallByName List.66 List.174 List.177; + inc List.685; + let List.179 : List Str = CallByName List.283 List.175 List.685 List.176; + let List.684 : U64 = 1i64; + let List.683 : U64 = CallByName Num.51 List.177 List.684; + jump List.679 List.174 List.179 List.176 List.683 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.18 (List.171, List.172, List.173): - let List.671 : U64 = 0i64; - let List.672 : U64 = CallByName List.6 List.171; - let List.670 : List Str = CallByName List.100 List.171 List.172 List.173 List.671 List.672; - ret List.670; + let List.677 : U64 = 0i64; + let List.678 : U64 = CallByName List.6 List.171; + let List.676 : List Str = CallByName List.100 List.171 List.172 List.173 List.677 List.678; + ret List.676; procedure List.2 (List.119, List.120): - let List.665 : U64 = CallByName List.6 List.119; - let List.661 : Int1 = CallByName Num.22 List.120 List.665; - if List.661 then - let List.663 : Str = CallByName List.66 List.119 List.120; - inc List.663; - let List.662 : [C {}, C Str] = TagId(1) List.663; - ret List.662; + let List.671 : U64 = CallByName List.6 List.119; + let List.667 : Int1 = CallByName Num.22 List.120 List.671; + if List.667 then + let List.669 : Str = CallByName List.66 List.119 List.120; + inc List.669; + let List.668 : [C {}, C Str] = TagId(1) List.669; + ret List.668; else - let List.660 : {} = Struct {}; - let List.659 : [C {}, C Str] = TagId(0) List.660; - ret List.659; + let List.666 : {} = Struct {}; + let List.665 : [C {}, C Str] = TagId(0) List.666; + ret List.665; procedure List.283 (List.284, List.285, List.281): - let List.682 : Str = CallByName Test.3 List.285; - let List.681 : List Str = CallByName List.71 List.284 List.682; - ret List.681; + let List.688 : Str = CallByName Test.3 List.285; + let List.687 : List Str = CallByName List.71 List.284 List.688; + ret List.687; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.668 : List Str = CallByName List.68 List.282; - let List.667 : List Str = CallByName List.18 List.280 List.668 List.281; - ret List.667; + let List.674 : List Str = CallByName List.68 List.282; + let List.673 : List Str = CallByName List.18 List.280 List.674 List.281; + ret List.673; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.66 (#Attr.2, #Attr.3): - let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.664; + let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.670; procedure List.68 (#Attr.2): - let List.684 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.684; + let List.690 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.690; procedure List.71 (#Attr.2, #Attr.3): - let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.683; + let List.689 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.689; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_map_take_capturing_or_noncapturing.txt b/crates/compiler/test_mono/generated/list_map_take_capturing_or_noncapturing.txt index f95dd5a567..26525f60c0 100644 --- a/crates/compiler/test_mono/generated/list_map_take_capturing_or_noncapturing.txt +++ b/crates/compiler/test_mono/generated/list_map_take_capturing_or_noncapturing.txt @@ -1,66 +1,66 @@ procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.665 List.174 List.175 List.176 List.177 List.178: - let List.667 : Int1 = CallByName Num.22 List.177 List.178; - if List.667 then - let List.671 : U8 = CallByName List.66 List.174 List.177; - let List.179 : List U8 = CallByName List.283 List.175 List.671 List.176; - let List.670 : U64 = 1i64; - let List.669 : U64 = CallByName Num.51 List.177 List.670; - jump List.665 List.174 List.179 List.176 List.669 List.178; + joinpoint List.671 List.174 List.175 List.176 List.177 List.178: + let List.673 : Int1 = CallByName Num.22 List.177 List.178; + if List.673 then + let List.677 : U8 = CallByName List.66 List.174 List.177; + let List.179 : List U8 = CallByName List.283 List.175 List.677 List.176; + let List.676 : U64 = 1i64; + let List.675 : U64 = CallByName Num.51 List.177 List.676; + jump List.671 List.174 List.179 List.176 List.675 List.178; else dec List.174; ret List.175; in inc #Derived_gen.3; - jump List.665 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + jump List.671 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure List.18 (List.171, List.172, List.173): - let List.663 : U64 = 0i64; - let List.664 : U64 = CallByName List.6 List.171; - let List.662 : List U8 = CallByName List.100 List.171 List.172 List.173 List.663 List.664; - ret List.662; + let List.669 : U64 = 0i64; + let List.670 : U64 = CallByName List.6 List.171; + let List.668 : List U8 = CallByName List.100 List.171 List.172 List.173 List.669 List.670; + ret List.668; procedure List.283 (List.284, List.285, List.281): - let List.678 : U8 = GetTagId List.281; - joinpoint List.679 List.676: - let List.675 : List U8 = CallByName List.71 List.284 List.676; - ret List.675; + let List.684 : U8 = GetTagId List.281; + joinpoint List.685 List.682: + let List.681 : List U8 = CallByName List.71 List.284 List.682; + ret List.681; in - switch List.678: + switch List.684: case 0: - let List.680 : U8 = CallByName Test.4 List.285 List.281; - jump List.679 List.680; + let List.686 : U8 = CallByName Test.4 List.285 List.281; + jump List.685 List.686; case 1: - let List.680 : U8 = CallByName Test.6 List.285 List.281; - jump List.679 List.680; + let List.686 : U8 = CallByName Test.6 List.285 List.281; + jump List.685 List.686; default: - let List.680 : U8 = CallByName Test.8 List.285; - jump List.679 List.680; + let List.686 : U8 = CallByName Test.8 List.285; + jump List.685 List.686; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.660 : List U8 = CallByName List.68 List.282; - let List.659 : List U8 = CallByName List.18 List.280 List.660 List.281; - ret List.659; + let List.666 : List U8 = CallByName List.68 List.282; + let List.665 : List U8 = CallByName List.18 List.280 List.666 List.281; + ret List.665; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.679 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.679; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.68 (#Attr.2): - let List.681 : List U8 = lowlevel ListWithCapacity #Attr.2; - ret List.681; + let List.687 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.687; procedure List.71 (#Attr.2, #Attr.3): - let List.677 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.677; + let List.683 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.19 (#Attr.2, #Attr.3): let Num.285 : U8 = lowlevel NumAdd #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_pass_to_function.txt b/crates/compiler/test_mono/generated/list_pass_to_function.txt index fa9abd3283..81d1d76c24 100644 --- a/crates/compiler/test_mono/generated/list_pass_to_function.txt +++ b/crates/compiler/test_mono/generated/list_pass_to_function.txt @@ -1,25 +1,25 @@ procedure List.3 (List.127, List.128, List.129): - let List.660 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; - let List.659 : List I64 = StructAtIndex 0 List.660; - ret List.659; + let List.666 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; + let List.665 : List I64 = StructAtIndex 0 List.666; + ret List.665; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.64 (List.124, List.125, List.126): - let List.665 : U64 = CallByName List.6 List.124; - let List.662 : Int1 = CallByName Num.22 List.125 List.665; - if List.662 then - let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; - ret List.663; + let List.671 : U64 = CallByName List.6 List.124; + let List.668 : Int1 = CallByName Num.22 List.125 List.671; + if List.668 then + let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; + ret List.669; else - let List.661 : {List I64, I64} = Struct {List.124, List.126}; - ret List.661; + let List.667 : {List I64, I64} = Struct {List.124, List.126}; + ret List.667; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.664; + let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/list_sort_asc.txt b/crates/compiler/test_mono/generated/list_sort_asc.txt index 2ab763a446..fb4bd333af 100644 --- a/crates/compiler/test_mono/generated/list_sort_asc.txt +++ b/crates/compiler/test_mono/generated/list_sort_asc.txt @@ -1,11 +1,11 @@ procedure List.28 (#Attr.2, #Attr.3): - let List.661 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.661; + let List.667 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.667; procedure List.59 (List.386): - let List.660 : {} = Struct {}; - let List.659 : List I64 = CallByName List.28 List.386 List.660; - ret List.659; + let List.666 : {} = Struct {}; + let List.665 : List I64 = CallByName List.28 List.386 List.666; + ret List.665; procedure Num.46 (#Attr.2, #Attr.3): let Num.283 : U8 = lowlevel NumCompare #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/quicksort_swap.txt b/crates/compiler/test_mono/generated/quicksort_swap.txt index 2d1244e63c..9f84320505 100644 --- a/crates/compiler/test_mono/generated/quicksort_swap.txt +++ b/crates/compiler/test_mono/generated/quicksort_swap.txt @@ -1,41 +1,41 @@ procedure List.2 (List.119, List.120): - let List.681 : U64 = CallByName List.6 List.119; - let List.678 : Int1 = CallByName Num.22 List.120 List.681; - if List.678 then - let List.680 : I64 = CallByName List.66 List.119 List.120; - let List.679 : [C {}, C I64] = TagId(1) List.680; - ret List.679; + let List.687 : U64 = CallByName List.6 List.119; + let List.684 : Int1 = CallByName Num.22 List.120 List.687; + if List.684 then + let List.686 : I64 = CallByName List.66 List.119 List.120; + let List.685 : [C {}, C I64] = TagId(1) List.686; + ret List.685; else - let List.677 : {} = Struct {}; - let List.676 : [C {}, C I64] = TagId(0) List.677; - ret List.676; + let List.683 : {} = Struct {}; + let List.682 : [C {}, C I64] = TagId(0) List.683; + ret List.682; procedure List.3 (List.127, List.128, List.129): - let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; - let List.667 : List I64 = StructAtIndex 0 List.668; - ret List.667; + let List.674 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; + let List.673 : List I64 = StructAtIndex 0 List.674; + ret List.673; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.64 (List.124, List.125, List.126): - let List.665 : U64 = CallByName List.6 List.124; - let List.662 : Int1 = CallByName Num.22 List.125 List.665; - if List.662 then - let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; - ret List.663; + let List.671 : U64 = CallByName List.6 List.124; + let List.668 : Int1 = CallByName Num.22 List.125 List.671; + if List.668 then + let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; + ret List.669; else - let List.661 : {List I64, I64} = Struct {List.124, List.126}; - ret List.661; + let List.667 : {List I64, I64} = Struct {List.124, List.126}; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.680 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.680; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.664; + let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/record_update.txt b/crates/compiler/test_mono/generated/record_update.txt index e67233c5c7..42d08fa11f 100644 --- a/crates/compiler/test_mono/generated/record_update.txt +++ b/crates/compiler/test_mono/generated/record_update.txt @@ -1,25 +1,25 @@ procedure List.3 (List.127, List.128, List.129): - let List.668 : {List U64, U64} = CallByName List.64 List.127 List.128 List.129; - let List.667 : List U64 = StructAtIndex 0 List.668; - ret List.667; + let List.674 : {List U64, U64} = CallByName List.64 List.127 List.128 List.129; + let List.673 : List U64 = StructAtIndex 0 List.674; + ret List.673; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.64 (List.124, List.125, List.126): - let List.665 : U64 = CallByName List.6 List.124; - let List.662 : Int1 = CallByName Num.22 List.125 List.665; - if List.662 then - let List.663 : {List U64, U64} = CallByName List.67 List.124 List.125 List.126; - ret List.663; + let List.671 : U64 = CallByName List.6 List.124; + let List.668 : Int1 = CallByName Num.22 List.125 List.671; + if List.668 then + let List.669 : {List U64, U64} = CallByName List.67 List.124 List.125 List.126; + ret List.669; else - let List.661 : {List U64, U64} = Struct {List.124, List.126}; - ret List.661; + let List.667 : {List U64, U64} = Struct {List.124, List.126}; + ret List.667; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.664 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.664; + let List.670 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/recursive_function_and_union_with_inference_hole.txt b/crates/compiler/test_mono/generated/recursive_function_and_union_with_inference_hole.txt index c9edc42975..33fa7a2b6b 100644 --- a/crates/compiler/test_mono/generated/recursive_function_and_union_with_inference_hole.txt +++ b/crates/compiler/test_mono/generated/recursive_function_and_union_with_inference_hole.txt @@ -1,52 +1,52 @@ procedure List.100 (#Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8): - joinpoint List.665 List.174 List.175 List.176 List.177 List.178: - let List.667 : Int1 = CallByName Num.22 List.177 List.178; - if List.667 then - let List.671 : [C List *self] = CallByName List.66 List.174 List.177; - inc List.671; - let List.179 : List [C List *self] = CallByName List.283 List.175 List.671 List.176; - let List.670 : U64 = 1i64; - let List.669 : U64 = CallByName Num.51 List.177 List.670; - jump List.665 List.174 List.179 List.176 List.669 List.178; + joinpoint List.671 List.174 List.175 List.176 List.177 List.178: + let List.673 : Int1 = CallByName Num.22 List.177 List.178; + if List.673 then + let List.677 : [C List *self] = CallByName List.66 List.174 List.177; + inc List.677; + let List.179 : List [C List *self] = CallByName List.283 List.175 List.677 List.176; + let List.676 : U64 = 1i64; + let List.675 : U64 = CallByName Num.51 List.177 List.676; + jump List.671 List.174 List.179 List.176 List.675 List.178; else dec List.174; ret List.175; in inc #Derived_gen.4; - jump List.665 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8; + jump List.671 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8; procedure List.18 (List.171, List.172, List.173): - let List.663 : U64 = 0i64; - let List.664 : U64 = CallByName List.6 List.171; - let List.662 : List [C List *self] = CallByName List.100 List.171 List.172 List.173 List.663 List.664; - ret List.662; + let List.669 : U64 = 0i64; + let List.670 : U64 = CallByName List.6 List.171; + let List.668 : List [C List *self] = CallByName List.100 List.171 List.172 List.173 List.669 List.670; + ret List.668; procedure List.283 (List.284, List.285, List.281): - let List.676 : [C List *self] = CallByName Test.2 List.285; - let List.675 : List [C List *self] = CallByName List.71 List.284 List.676; - ret List.675; + let List.682 : [C List *self] = CallByName Test.2 List.285; + let List.681 : List [C List *self] = CallByName List.71 List.284 List.682; + ret List.681; procedure List.5 (List.280, List.281): let List.282 : U64 = CallByName List.6 List.280; - let List.660 : List [C List *self] = CallByName List.68 List.282; - let List.659 : List [C List *self] = CallByName List.18 List.280 List.660 List.281; - ret List.659; + let List.666 : List [C List *self] = CallByName List.68 List.282; + let List.665 : List [C List *self] = CallByName List.18 List.280 List.666 List.281; + ret List.665; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.679 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.679; procedure List.66 (#Attr.2, #Attr.3): - let List.672 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.672; + let List.678 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.68 (#Attr.2): - let List.678 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.678; + let List.684 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.684; procedure List.71 (#Attr.2, #Attr.3): - let List.677 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.677; + let List.683 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/rigids.txt b/crates/compiler/test_mono/generated/rigids.txt index 867d227cb5..74121885bd 100644 --- a/crates/compiler/test_mono/generated/rigids.txt +++ b/crates/compiler/test_mono/generated/rigids.txt @@ -1,41 +1,41 @@ procedure List.2 (List.119, List.120): - let List.681 : U64 = CallByName List.6 List.119; - let List.678 : Int1 = CallByName Num.22 List.120 List.681; - if List.678 then - let List.680 : I64 = CallByName List.66 List.119 List.120; - let List.679 : [C {}, C I64] = TagId(1) List.680; - ret List.679; + let List.687 : U64 = CallByName List.6 List.119; + let List.684 : Int1 = CallByName Num.22 List.120 List.687; + if List.684 then + let List.686 : I64 = CallByName List.66 List.119 List.120; + let List.685 : [C {}, C I64] = TagId(1) List.686; + ret List.685; else - let List.677 : {} = Struct {}; - let List.676 : [C {}, C I64] = TagId(0) List.677; - ret List.676; + let List.683 : {} = Struct {}; + let List.682 : [C {}, C I64] = TagId(0) List.683; + ret List.682; procedure List.3 (List.127, List.128, List.129): - let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; - let List.667 : List I64 = StructAtIndex 0 List.668; - ret List.667; + let List.674 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129; + let List.673 : List I64 = StructAtIndex 0 List.674; + ret List.673; procedure List.6 (#Attr.2): - let List.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.672 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.672; procedure List.64 (List.124, List.125, List.126): - let List.665 : U64 = CallByName List.6 List.124; - let List.662 : Int1 = CallByName Num.22 List.125 List.665; - if List.662 then - let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; - ret List.663; + let List.671 : U64 = CallByName List.6 List.124; + let List.668 : Int1 = CallByName Num.22 List.125 List.671; + if List.668 then + let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126; + ret List.669; else - let List.661 : {List I64, I64} = Struct {List.124, List.126}; - ret List.661; + let List.667 : {List I64, I64} = Struct {List.124, List.126}; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.680 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.680; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.664; + let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.670; procedure Num.22 (#Attr.2, #Attr.3): let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_types.txt b/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_types.txt index 01261e4c16..55e453bdf1 100644 --- a/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_types.txt +++ b/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_types.txt @@ -30,57 +30,57 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : Str = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.66 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : Str = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.66 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.0; - jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.668 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.13 (#Attr.2, #Attr.3): - let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.685; + let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.691; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.4 (List.135, List.136): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.135 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.136; - ret List.679; + let List.687 : U64 = 1i64; + let List.686 : List U8 = CallByName List.70 List.135 List.687; + let List.685 : List U8 = CallByName List.71 List.686 List.136; + ret List.685; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.679; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.689; procedure Num.127 (#Attr.2): let Num.284 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt b/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt index 8cb0c39eaf..e8ea227583 100644 --- a/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt +++ b/crates/compiler/test_mono/generated/unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt @@ -88,92 +88,92 @@ procedure Encode.26 (Encode.107, Encode.108): ret Encode.110; procedure List.100 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48): - joinpoint List.689 List.174 List.175 List.176 List.177 List.178: - let List.691 : Int1 = CallByName Num.22 List.177 List.178; - if List.691 then - let List.695 : Str = CallByName List.66 List.174 List.177; - inc List.695; - let List.179 : List U8 = CallByName Test.66 List.175 List.695 List.176; - let List.694 : U64 = 1i64; - let List.693 : U64 = CallByName Num.51 List.177 List.694; - jump List.689 List.174 List.179 List.176 List.693 List.178; + joinpoint List.695 List.174 List.175 List.176 List.177 List.178: + let List.697 : Int1 = CallByName Num.22 List.177 List.178; + if List.697 then + let List.701 : Str = CallByName List.66 List.174 List.177; + inc List.701; + let List.179 : List U8 = CallByName Test.66 List.175 List.701 List.176; + let List.700 : U64 = 1i64; + let List.699 : U64 = CallByName Num.51 List.177 List.700; + jump List.695 List.174 List.179 List.176 List.699 List.178; else dec List.174; ret List.175; in inc #Derived_gen.44; - jump List.689 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; + jump List.695 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; procedure List.100 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): - joinpoint List.662 List.174 List.175 List.176 List.177 List.178: - let List.664 : Int1 = CallByName Num.22 List.177 List.178; - if List.664 then - let List.668 : [C {}, C {}, C Str] = CallByName List.66 List.174 List.177; - inc List.668; - let List.179 : List U8 = CallByName Test.66 List.175 List.668 List.176; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.177 List.667; - jump List.662 List.174 List.179 List.176 List.666 List.178; + joinpoint List.668 List.174 List.175 List.176 List.177 List.178: + let List.670 : Int1 = CallByName Num.22 List.177 List.178; + if List.670 then + let List.674 : [C {}, C {}, C Str] = CallByName List.66 List.174 List.177; + inc List.674; + let List.179 : List U8 = CallByName Test.66 List.175 List.674 List.176; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.177 List.673; + jump List.668 List.174 List.179 List.176 List.672 List.178; else dec List.174; ret List.175; in inc #Derived_gen.49; - jump List.662 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; + jump List.668 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; procedure List.13 (#Attr.2, #Attr.3): - let List.685 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.685; + let List.691 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.691; procedure List.13 (#Attr.2, #Attr.3): - let List.713 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.713; + let List.719 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.719; procedure List.18 (List.171, List.172, List.173): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.171; - let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661; - ret List.659; + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.171; + let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667; + ret List.665; procedure List.18 (List.171, List.172, List.173): - let List.687 : U64 = 0i64; - let List.688 : U64 = CallByName List.6 List.171; - let List.686 : List U8 = CallByName List.100 List.171 List.172 List.173 List.687 List.688; - ret List.686; + let List.693 : U64 = 0i64; + let List.694 : U64 = CallByName List.6 List.171; + let List.692 : List U8 = CallByName List.100 List.171 List.172 List.173 List.693 List.694; + ret List.692; procedure List.4 (List.135, List.136): - let List.708 : U64 = 1i64; - let List.707 : List U8 = CallByName List.70 List.135 List.708; - let List.706 : List U8 = CallByName List.71 List.707 List.136; - ret List.706; + let List.714 : U64 = 1i64; + let List.713 : List U8 = CallByName List.70 List.135 List.714; + let List.712 : List U8 = CallByName List.71 List.713 List.136; + ret List.712; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.690 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.690; procedure List.6 (#Attr.2): - let List.711 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.711; + let List.717 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.717; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.675 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; procedure List.66 (#Attr.2, #Attr.3): - let List.696 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.696; + let List.702 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.702; procedure List.70 (#Attr.2, #Attr.3): - let List.702 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.702; + let List.708 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.708; procedure List.71 (#Attr.2, #Attr.3): - let List.700 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.700; + let List.706 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.706; procedure List.8 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.710; + let List.716 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.716; procedure Num.127 (#Attr.2): let Num.288 : U8 = lowlevel NumIntCast #Attr.2; diff --git a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt index 66b3284078..e5499da3ef 100644 --- a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt +++ b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt @@ -3,80 +3,80 @@ procedure Bool.11 (#Attr.2, #Attr.3): ret Bool.23; procedure List.115 (List.562, List.563, List.564): - let List.677 : U64 = 0i64; - let List.678 : U64 = CallByName List.6 List.562; - let List.676 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.677 List.678; - ret List.676; + let List.683 : U64 = 0i64; + let List.684 : U64 = CallByName List.6 List.562; + let List.682 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.683 List.684; + ret List.682; procedure List.26 (List.212, List.213, List.214): - let List.670 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214; - let List.673 : U8 = 1i64; - let List.674 : U8 = GetTagId List.670; - let List.675 : Int1 = lowlevel Eq List.673 List.674; - if List.675 then - let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.670; + let List.676 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214; + let List.679 : U8 = 1i64; + let List.680 : U8 = GetTagId List.676; + let List.681 : Int1 = lowlevel Eq List.679 List.680; + if List.681 then + let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.676; ret List.215; else - let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670; + let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.676; ret List.216; procedure List.38 (List.400, List.401): - let List.669 : U64 = CallByName List.6 List.400; - let List.402 : U64 = CallByName Num.77 List.669 List.401; - let List.659 : List U8 = CallByName List.43 List.400 List.402; - ret List.659; + let List.675 : U64 = CallByName List.6 List.400; + let List.402 : U64 = CallByName Num.77 List.675 List.401; + let List.665 : List U8 = CallByName List.43 List.400 List.402; + ret List.665; procedure List.43 (List.398, List.399): - let List.667 : U64 = CallByName List.6 List.398; - let List.666 : U64 = CallByName Num.77 List.667 List.399; - let List.661 : {U64, U64} = Struct {List.399, List.666}; - let List.660 : List U8 = CallByName List.49 List.398 List.661; - ret List.660; + let List.673 : U64 = CallByName List.6 List.398; + let List.672 : U64 = CallByName Num.77 List.673 List.399; + let List.667 : {U64, U64} = Struct {List.399, List.672}; + let List.666 : List U8 = CallByName List.49 List.398 List.667; + ret List.666; procedure List.49 (List.476, List.477): - let List.663 : U64 = StructAtIndex 1 List.477; - let List.664 : U64 = StructAtIndex 0 List.477; - let List.662 : List U8 = CallByName List.72 List.476 List.663 List.664; - ret List.662; + let List.669 : U64 = StructAtIndex 1 List.477; + let List.670 : U64 = StructAtIndex 0 List.477; + let List.668 : List U8 = CallByName List.72 List.476 List.669 List.670; + ret List.668; procedure List.6 (#Attr.2): - let List.668 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.668; + let List.674 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.674; procedure List.66 (#Attr.2, #Attr.3): - let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.691; + let List.697 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.697; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.665; + let List.671 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.671; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.679 List.565 List.566 List.567 List.568 List.569: - let List.681 : Int1 = CallByName Num.22 List.568 List.569; - if List.681 then - let List.690 : U8 = CallByName List.66 List.565 List.568; - let List.682 : [C U64, C U64] = CallByName Test.3 List.566 List.690; - let List.687 : U8 = 1i64; - let List.688 : U8 = GetTagId List.682; - let List.689 : Int1 = lowlevel Eq List.687 List.688; - if List.689 then - let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.682; - let List.685 : U64 = 1i64; - let List.684 : U64 = CallByName Num.51 List.568 List.685; - jump List.679 List.565 List.570 List.567 List.684 List.569; + joinpoint List.685 List.565 List.566 List.567 List.568 List.569: + let List.687 : Int1 = CallByName Num.22 List.568 List.569; + if List.687 then + let List.696 : U8 = CallByName List.66 List.565 List.568; + let List.688 : [C U64, C U64] = CallByName Test.3 List.566 List.696; + let List.693 : U8 = 1i64; + let List.694 : U8 = GetTagId List.688; + let List.695 : Int1 = lowlevel Eq List.693 List.694; + if List.695 then + let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.688; + let List.691 : U64 = 1i64; + let List.690 : U64 = CallByName Num.51 List.568 List.691; + jump List.685 List.565 List.570 List.567 List.690 List.569; else dec List.565; - let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.682; - let List.686 : [C U64, C U64] = TagId(0) List.571; - ret List.686; + let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.688; + let List.692 : [C U64, C U64] = TagId(0) List.571; + ret List.692; else dec List.565; - let List.680 : [C U64, C U64] = TagId(1) List.566; - ret List.680; + let List.686 : [C U64, C U64] = TagId(1) List.566; + ret List.686; in inc #Derived_gen.0; - jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.685 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;