From 45b50bd131de45d0360247caefc7c10e47268720 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:16:41 -0600 Subject: [PATCH 01/14] add List.splitAt --- crates/cli/tests/cli/echo.roc | 2 +- crates/cli/tests/cli/parser-movies-csv.roc | 2 +- crates/compiler/builtins/roc/List.roc | 18 +- crates/compiler/module/src/symbol.rs | 1 + crates/compiler/solve/tests/solve_expr.rs | 2 +- crates/compiler/test_gen/src/gen_list.rs | 14 +- crates/compiler/test_gen/src/gen_refcount.rs | 4 +- ...e_in_polymorphic_expression_issue_4717.txt | 116 +++---- .../generated/call_function_in_empty_list.txt | 68 ++-- .../call_function_in_empty_list_unbound.txt | 68 ++-- .../generated/capture_void_layout_task.txt | 42 +-- ...ose_correct_recursion_var_under_record.txt | 130 ++++---- .../test_mono/generated/closure_in_list.txt | 4 +- ...lambda_set_productive_nullable_wrapped.txt | 44 +-- crates/compiler/test_mono/generated/dict.txt | 4 +- .../generated/empty_list_of_function_type.txt | 28 +- .../compiler/test_mono/generated/encode.txt | 18 +- .../encode_derived_nested_record_string.txt | 112 +++---- ...encode_derived_record_one_field_string.txt | 66 ++-- ...ncode_derived_record_two_field_strings.txt | 66 ++-- .../generated/encode_derived_string.txt | 22 +- .../encode_derived_tag_one_field_string.txt | 70 ++-- ...encode_derived_tag_two_payloads_string.txt | 72 ++-- .../generated/inspect_derived_dict.txt | 314 +++++++++--------- .../generated/inspect_derived_list.txt | 44 +-- .../inspect_derived_nested_record_string.txt | 88 ++--- .../generated/inspect_derived_record.txt | 46 +-- ...nspect_derived_record_one_field_string.txt | 46 +-- ...spect_derived_record_two_field_strings.txt | 46 +-- .../inspect_derived_tag_one_field_string.txt | 58 ++-- ...nspect_derived_tag_two_payloads_string.txt | 58 ++-- .../test_mono/generated/ir_int_add.txt | 4 +- ...cialize_errors_behind_unified_branches.txt | 54 +-- .../test_mono/generated/issue_4770.txt | 190 +++++------ ...ure_with_multiple_recursive_structures.txt | 44 +-- .../test_mono/generated/list_append.txt | 18 +- .../generated/list_append_closure.txt | 18 +- .../generated/list_cannot_update_inplace.txt | 32 +- .../compiler/test_mono/generated/list_get.txt | 28 +- .../compiler/test_mono/generated/list_len.txt | 8 +- .../generated/list_map_closure_borrows.txt | 94 +++--- .../generated/list_map_closure_owns.txt | 94 +++--- ...ist_map_take_capturing_or_noncapturing.txt | 86 ++--- .../generated/list_pass_to_function.txt | 34 +- .../test_mono/generated/list_sort_asc.txt | 12 +- .../test_mono/generated/quicksort_swap.txt | 66 ++-- .../test_mono/generated/record_update.txt | 32 +- ...function_and_union_with_inference_hole.txt | 70 ++-- .../compiler/test_mono/generated/rigids.txt | 66 ++-- ...not_duplicate_identical_concrete_types.txt | 72 ++-- ...types_without_unification_of_unifiable.txt | 126 +++---- .../weakening_avoids_overspecialization.txt | 116 +++---- crates/test_utils/src/TagLenEncoderFmt.roc | 7 +- examples/virtual-dom-wip/platform/Json.roc | 4 +- 54 files changed, 1479 insertions(+), 1469 deletions(-) diff --git a/crates/cli/tests/cli/echo.roc b/crates/cli/tests/cli/echo.roc index 2b1d585712..3d63396723 100644 --- a/crates/cli/tests/cli/echo.roc +++ b/crates/cli/tests/cli/echo.roc @@ -27,7 +27,7 @@ echo = \shout -> |> List.mapWithIndex (\_, i -> length = (List.len (Str.toUtf8 shout) - i) - phrase = (List.split (Str.toUtf8 shout) length).before + phrase = (List.splitAt (Str.toUtf8 shout) length).before List.concat (silence (if i == 0 then 2 * length else length)) phrase) |> List.join diff --git a/crates/cli/tests/cli/parser-movies-csv.roc b/crates/cli/tests/cli/parser-movies-csv.roc index 3a8f452725..d96abfc0e3 100644 --- a/crates/cli/tests/cli/parser-movies-csv.roc +++ b/crates/cli/tests/cli/parser-movies-csv.roc @@ -56,7 +56,7 @@ movieInfoExplanation = \@MovieInfo { title, releaseYear, actors } -> enumerate : List Str -> Str enumerate = \elements -> - { before: inits, others: last } = List.split elements (List.len elements - 1) + { before: inits, others: last } = List.splitAt elements (List.len elements - 1) last |> List.prepend (inits |> Str.joinWith ", ") diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index e87b3e4b47..14f26cfc92 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -56,6 +56,7 @@ module [ sublist, intersperse, split, + splitAt, splitFirst, splitLast, startsWith, @@ -1026,7 +1027,7 @@ first = \list -> ## To remove elements from both the beginning and end of the list, ## use `List.sublist`. ## -## To split the list into two lists, use `List.split`. +## To split the list into two lists, use `List.splitAt`. ## takeFirst : List elem, U64 -> List elem takeFirst = \list, outputLength -> @@ -1046,7 +1047,7 @@ takeFirst = \list, outputLength -> ## To remove elements from both the beginning and end of the list, ## use `List.sublist`. ## -## To split the list into two lists, use `List.split`. +## To split the list into two lists, use `List.splitAt`. ## takeLast : List elem, U64 -> List elem takeLast = \list, outputLength -> @@ -1247,6 +1248,16 @@ endsWith = \list, suffix -> ## than the given index, # and the `others` list will be all the others. (This ## means if you give an index of 0, the `before` list will be empty and the ## `others` list will have the same elements as the original list.) +splitAt : List elem, U64 -> { before : List elem, others : List elem } +splitAt = \elements, userSplitIndex -> + length = List.len elements + splitIndex = if length > userSplitIndex then userSplitIndex else length + before = List.sublist elements { start: 0, len: splitIndex } + others = List.sublist elements { start: splitIndex, len: Num.subWrap length splitIndex } + + { before, others } + +## DEPRECATED: will be removed soon split : List elem, U64 -> { before : List elem, others : List elem } split = \elements, userSplitIndex -> length = List.len elements @@ -1305,7 +1316,7 @@ chunksOfHelp = \listRest, chunkSize, chunks -> if List.isEmpty listRest then chunks else - { before, others } = List.split listRest chunkSize + { before, others } = List.splitAt listRest chunkSize chunksOfHelp others chunkSize (List.append chunks before) ## Like [List.map], except the transformation function returns a [Result]. @@ -1382,4 +1393,3 @@ iterBackwardsHelp = \list, state, f, prevIndex -> concatUtf8 : List U8, Str -> List U8 expect (List.concatUtf8 [1, 2, 3, 4] "🐦") == [1, 2, 3, 4, 240, 159, 144, 166] - diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index c94da9f0ea..e0848ba1b7 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1510,6 +1510,7 @@ define_builtins! { 88 LIST_LEN_USIZE: "lenUsize" 89 LIST_CONCAT_UTF8: "concatUtf8" 90 LIST_WALK_FX: "walk!" + 91 LIST_SPLIT_AT: "splitAt" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias diff --git a/crates/compiler/solve/tests/solve_expr.rs b/crates/compiler/solve/tests/solve_expr.rs index a8da55ded6..58330cbe94 100644 --- a/crates/compiler/solve/tests/solve_expr.rs +++ b/crates/compiler/solve/tests/solve_expr.rs @@ -3863,7 +3863,7 @@ mod solve_expr { #[test] fn list_split() { infer_eq_without_problem( - indoc!("List.split"), + indoc!("List.splitAt"), "List elem, U64 -> { before : List elem, others : List elem }", ); } diff --git a/crates/compiler/test_gen/src/gen_list.rs b/crates/compiler/test_gen/src/gen_list.rs index 4d2c42a070..dbc3ee3cec 100644 --- a/crates/compiler/test_gen/src/gen_list.rs +++ b/crates/compiler/test_gen/src/gen_list.rs @@ -371,10 +371,10 @@ fn list_map_try_err() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] -fn list_split() { +fn list_split_at() { assert_evals_to!( r" - list = List.split [1, 2, 3] 0 + list = List.splitAt [1, 2, 3] 0 list.before ", RocList::::from_slice(&[]), @@ -382,7 +382,7 @@ fn list_split() { ); assert_evals_to!( r" - list = List.split [1, 2, 3] 0 + list = List.splitAt [1, 2, 3] 0 list.others ", RocList::from_slice(&[1, 2, 3]), @@ -390,13 +390,13 @@ fn list_split() { ); assert_evals_to!( r" - List.split [1, 2, 3] 1 + List.splitAt [1, 2, 3] 1 ", (RocList::from_slice(&[1]), RocList::from_slice(&[2, 3])), (RocList, RocList,) ); assert_evals_to!( - "List.split [1, 2, 3] 3", + "List.splitAt [1, 2, 3] 3", ( RocList::from_slice(&[1, 2, 3]), RocList::::from_slice(&[]), @@ -404,7 +404,7 @@ fn list_split() { (RocList, RocList,) ); assert_evals_to!( - "List.split [1, 2, 3] 4", + "List.splitAt [1, 2, 3] 4", ( RocList::from_slice(&[1, 2, 3]), RocList::::from_slice(&[]), @@ -412,7 +412,7 @@ fn list_split() { (RocList, RocList,) ); assert_evals_to!( - "List.split [] 1", + "List.splitAt [] 1", ( RocList::::from_slice(&[]), RocList::::from_slice(&[]), diff --git a/crates/compiler/test_gen/src/gen_refcount.rs b/crates/compiler/test_gen/src/gen_refcount.rs index c6fb910734..4e00b3fa54 100644 --- a/crates/compiler/test_gen/src/gen_refcount.rs +++ b/crates/compiler/test_gen/src/gen_refcount.rs @@ -226,7 +226,7 @@ fn list_str_split() { r#" s = Str.concat "A long enough string " "to be heap-allocated" list = [s, s, s] - List.split list 1 + List.splitAt list 1 "# ), (RocList, RocList), @@ -245,7 +245,7 @@ fn list_str_split_zero() { r#" s = Str.concat "A long enough string " "to be heap-allocated" list = [s, s, s] - List.split list 0 + List.splitAt list 0 "# ), (RocList, RocList), 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 465131169d..adf3ce4539 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 @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.111 (List.540, List.541, List.542): - let List.644 : U64 = 0i64; - let List.645 : U64 = CallByName List.6 List.540; - let List.643 : [C U64, C U64] = CallByName List.80 List.540 List.541 List.542 List.644 List.645; - ret List.643; +procedure List.112 (List.547, List.548, List.549): + let List.651 : U64 = 0i64; + let List.652 : U64 = CallByName List.6 List.547; + let List.650 : [C U64, C U64] = CallByName List.80 List.547 List.548 List.549 List.651 List.652; + ret List.650; -procedure List.26 (List.208, List.209, List.210): - let List.637 : [C U64, C U64] = CallByName List.111 List.208 List.209 List.210; - let List.640 : U8 = 1i64; - let List.641 : U8 = GetTagId List.637; - let List.642 : Int1 = lowlevel Eq List.640 List.641; - if List.642 then - let List.211 : U64 = UnionAtIndex (Id 1) (Index 0) List.637; - ret List.211; - else - let List.212 : U64 = UnionAtIndex (Id 0) (Index 0) List.637; +procedure List.26 (List.209, List.210, List.211): + let List.644 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; + let List.647 : U8 = 1i64; + let List.648 : U8 = GetTagId List.644; + let List.649 : Int1 = lowlevel Eq List.647 List.648; + if List.649 then + let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.644; ret List.212; + else + let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.644; + ret List.213; -procedure List.38 (List.396, List.397): - let List.636 : U64 = CallByName List.6 List.396; - let List.398 : U64 = CallByName Num.77 List.636 List.397; - let List.626 : List U8 = CallByName List.43 List.396 List.398; - ret List.626; +procedure List.38 (List.397, List.398): + let List.643 : U64 = CallByName List.6 List.397; + let List.399 : U64 = CallByName Num.77 List.643 List.398; + let List.633 : List U8 = CallByName List.43 List.397 List.399; + ret List.633; -procedure List.43 (List.394, List.395): - let List.634 : U64 = CallByName List.6 List.394; - let List.633 : U64 = CallByName Num.77 List.634 List.395; - let List.628 : {U64, U64} = Struct {List.395, List.633}; - let List.627 : List U8 = CallByName List.49 List.394 List.628; - ret List.627; +procedure List.43 (List.395, List.396): + let List.641 : U64 = CallByName List.6 List.395; + let List.640 : U64 = CallByName Num.77 List.641 List.396; + let List.635 : {U64, U64} = Struct {List.396, List.640}; + let List.634 : List U8 = CallByName List.49 List.395 List.635; + ret List.634; -procedure List.49 (List.472, List.473): - let List.630 : U64 = StructAtIndex 1 List.473; - let List.631 : U64 = StructAtIndex 0 List.473; - let List.629 : List U8 = CallByName List.72 List.472 List.630 List.631; - ret List.629; +procedure List.49 (List.473, List.474): + let List.637 : U64 = StructAtIndex 1 List.474; + let List.638 : U64 = StructAtIndex 0 List.474; + let List.636 : List U8 = CallByName List.72 List.473 List.637 List.638; + ret List.636; procedure List.6 (#Attr.2): - let List.635 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.635; + let List.642 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.642; procedure List.66 (#Attr.2, #Attr.3): - let List.658 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.658; + let List.665 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.665; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.632 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.632; + let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.639; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.646 List.543 List.544 List.545 List.546 List.547: - let List.648 : Int1 = CallByName Num.22 List.546 List.547; - if List.648 then - let List.657 : U8 = CallByName List.66 List.543 List.546; - let List.649 : [C U64, C U64] = CallByName Test.4 List.544 List.657; - let List.654 : U8 = 1i64; - let List.655 : U8 = GetTagId List.649; - let List.656 : Int1 = lowlevel Eq List.654 List.655; - if List.656 then - let List.548 : U64 = UnionAtIndex (Id 1) (Index 0) List.649; - let List.652 : U64 = 1i64; - let List.651 : U64 = CallByName Num.51 List.546 List.652; - jump List.646 List.543 List.548 List.545 List.651 List.547; + joinpoint List.653 List.550 List.551 List.552 List.553 List.554: + let List.655 : Int1 = CallByName Num.22 List.553 List.554; + if List.655 then + let List.664 : U8 = CallByName List.66 List.550 List.553; + let List.656 : [C U64, C U64] = CallByName Test.4 List.551 List.664; + let List.661 : U8 = 1i64; + let List.662 : U8 = GetTagId List.656; + let List.663 : Int1 = lowlevel Eq List.661 List.662; + if List.663 then + let List.555 : U64 = UnionAtIndex (Id 1) (Index 0) List.656; + let List.659 : U64 = 1i64; + let List.658 : U64 = CallByName Num.51 List.553 List.659; + jump List.653 List.550 List.555 List.552 List.658 List.554; else - dec List.543; - let List.549 : U64 = UnionAtIndex (Id 0) (Index 0) List.649; - let List.653 : [C U64, C U64] = TagId(0) List.549; - ret List.653; + dec List.550; + let List.556 : U64 = UnionAtIndex (Id 0) (Index 0) List.656; + let List.660 : [C U64, C U64] = TagId(0) List.556; + ret List.660; else - dec List.543; - let List.647 : [C U64, C U64] = TagId(1) List.544; - ret List.647; + dec List.550; + let List.654 : [C U64, C U64] = TagId(1) List.551; + ret List.654; in inc #Derived_gen.0; - jump List.646 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.653 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; 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.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt index d509acb3ea..b241e25b00 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.18 (List.167, List.168, List.169): - let List.630 : U64 = 0i64; - let List.631 : U64 = CallByName List.6 List.167; - let List.629 : List {} = CallByName List.96 List.167 List.168 List.169 List.630 List.631; - ret List.629; +procedure List.18 (List.168, List.169, List.170): + let List.637 : U64 = 0i64; + let List.638 : U64 = CallByName List.6 List.168; + let List.636 : List {} = CallByName List.97 List.168 List.169 List.170 List.637 List.638; + ret List.636; -procedure List.279 (List.280, List.281, List.277): - let List.643 : {} = CallByName Test.2 List.281; - let List.642 : List {} = CallByName List.71 List.280 List.643; - ret List.642; +procedure List.280 (List.281, List.282, List.278): + let List.650 : {} = CallByName Test.2 List.282; + let List.649 : List {} = CallByName List.71 List.281 List.650; + ret List.649; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.627 : List {} = CallByName List.68 List.278; - let List.626 : List {} = CallByName List.18 List.276 List.627 List.277; - ret List.626; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.634 : List {} = CallByName List.68 List.279; + let List.633 : List {} = CallByName List.18 List.277 List.634 List.278; + ret List.633; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.647 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.647; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; procedure List.68 (#Attr.2): - let List.645 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.645; + let List.652 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.652; procedure List.71 (#Attr.2, #Attr.3): - let List.644 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.644; + let List.651 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.651; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.632 List.170 List.171 List.172 List.173 List.174: - let List.634 : Int1 = CallByName Num.22 List.173 List.174; - if List.634 then - let List.638 : [] = CallByName List.66 List.170 List.173; - let List.175 : List {} = CallByName List.279 List.171 List.638 List.172; - let List.637 : U64 = 1i64; - let List.636 : U64 = CallByName Num.51 List.173 List.637; - jump List.632 List.170 List.175 List.172 List.636 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.639 List.171 List.172 List.173 List.174 List.175: + let List.641 : Int1 = CallByName Num.22 List.174 List.175; + if List.641 then + let List.645 : [] = CallByName List.66 List.171 List.174; + let List.176 : List {} = CallByName List.280 List.172 List.645 List.173; + let List.644 : U64 = 1i64; + let List.643 : U64 = CallByName Num.51 List.174 List.644; + jump List.639 List.171 List.176 List.173 List.643 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.0; - jump List.632 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 e782e32d4e..d991906b11 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.18 (List.167, List.168, List.169): - let List.630 : U64 = 0i64; - let List.631 : U64 = CallByName List.6 List.167; - let List.629 : List [] = CallByName List.96 List.167 List.168 List.169 List.630 List.631; - ret List.629; +procedure List.18 (List.168, List.169, List.170): + let List.637 : U64 = 0i64; + let List.638 : U64 = CallByName List.6 List.168; + let List.636 : List [] = CallByName List.97 List.168 List.169 List.170 List.637 List.638; + ret List.636; -procedure List.279 (List.280, List.281, List.277): - let List.643 : [] = CallByName Test.2 List.281; - let List.642 : List [] = CallByName List.71 List.280 List.643; - ret List.642; +procedure List.280 (List.281, List.282, List.278): + let List.650 : [] = CallByName Test.2 List.282; + let List.649 : List [] = CallByName List.71 List.281 List.650; + ret List.649; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.627 : List [] = CallByName List.68 List.278; - let List.626 : List [] = CallByName List.18 List.276 List.627 List.277; - ret List.626; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.634 : List [] = CallByName List.68 List.279; + let List.633 : List [] = CallByName List.18 List.277 List.634 List.278; + ret List.633; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.647 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.647; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; procedure List.68 (#Attr.2): - let List.645 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.645; + let List.652 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.652; procedure List.71 (#Attr.2, #Attr.3): - let List.644 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.644; + let List.651 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.651; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.632 List.170 List.171 List.172 List.173 List.174: - let List.634 : Int1 = CallByName Num.22 List.173 List.174; - if List.634 then - let List.638 : [] = CallByName List.66 List.170 List.173; - let List.175 : List [] = CallByName List.279 List.171 List.638 List.172; - let List.637 : U64 = 1i64; - let List.636 : U64 = CallByName Num.51 List.173 List.637; - jump List.632 List.170 List.175 List.172 List.636 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.639 List.171 List.172 List.173 List.174 List.175: + let List.641 : Int1 = CallByName Num.22 List.174 List.175; + if List.641 then + let List.645 : [] = CallByName List.66 List.171 List.174; + let List.176 : List [] = CallByName List.280 List.172 List.645 List.173; + let List.644 : U64 = 1i64; + let List.643 : U64 = CallByName Num.51 List.174 List.644; + jump List.639 List.171 List.176 List.173 List.643 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.0; - jump List.632 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 785c585682..8c2b3dc3bc 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.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : [C {}, C *self {{}, []}] = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : [C {}, C *self {{}, []}] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : [] = CallByName List.66 List.170 List.173; - let List.175 : [C {}, C *self {{}, []}] = CallByName Test.29 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : [] = CallByName List.66 List.171 List.174; + let List.176 : [C {}, C *self {{}, []}] = CallByName Test.29 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.13; - jump List.629 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.636 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 ba38439fd1..af41e0c6bd 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 @@ -2,92 +2,92 @@ procedure Bool.1 (): let Bool.24 : Int1 = false; ret Bool.24; -procedure List.18 (List.167, List.168, List.169): - let List.646 : U64 = 0i64; - let List.647 : U64 = CallByName List.6 List.167; - let List.645 : List Str = CallByName List.96 List.167 List.168 List.169 List.646 List.647; - ret List.645; +procedure List.18 (List.168, List.169, List.170): + let List.653 : U64 = 0i64; + let List.654 : U64 = CallByName List.6 List.168; + let List.652 : List Str = CallByName List.97 List.168 List.169 List.170 List.653 List.654; + ret List.652; -procedure List.2 (List.115, List.116): - let List.640 : U64 = CallByName List.6 List.115; - let List.636 : Int1 = CallByName Num.22 List.116 List.640; - if List.636 then - let List.638 : Str = CallByName List.66 List.115 List.116; - inc List.638; - let List.637 : [C {}, C Str] = TagId(1) List.638; - ret List.637; +procedure List.2 (List.116, List.117): + let List.647 : U64 = CallByName List.6 List.116; + let List.643 : Int1 = CallByName Num.22 List.117 List.647; + if List.643 then + let List.645 : Str = CallByName List.66 List.116 List.117; + inc List.645; + let List.644 : [C {}, C Str] = TagId(1) List.645; + ret List.644; else - let List.635 : {} = Struct {}; - let List.634 : [C {}, C Str] = TagId(0) List.635; - ret List.634; + let List.642 : {} = Struct {}; + let List.641 : [C {}, C Str] = TagId(0) List.642; + ret List.641; -procedure List.279 (List.280, List.281, List.277): - let List.659 : Str = CallByName Test.10 List.281; - let List.658 : List Str = CallByName List.71 List.280 List.659; - ret List.658; +procedure List.280 (List.281, List.282, List.278): + let List.666 : Str = CallByName Test.10 List.282; + let List.665 : List Str = CallByName List.71 List.281 List.666; + ret List.665; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.643 : List Str = CallByName List.68 List.278; - let List.642 : List Str = CallByName List.18 List.276 List.643 List.277; - ret List.642; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.650 : List Str = CallByName List.68 List.279; + let List.649 : List Str = CallByName List.18 List.277 List.650 List.278; + ret List.649; procedure List.6 (#Attr.2): - let List.641 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.641; + let List.648 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.648; procedure List.6 (#Attr.2): - let List.656 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.656; + let List.663 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.663; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; procedure List.66 (#Attr.2, #Attr.3): - let List.655 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.655; + let List.662 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.662; procedure List.68 (#Attr.2): - let List.661 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.661; + let List.668 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.668; procedure List.71 (#Attr.2, #Attr.3): - let List.660 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.660; + let List.667 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; -procedure List.9 (List.387): - let List.633 : U64 = 0i64; - let List.626 : [C {}, C Str] = CallByName List.2 List.387 List.633; - let List.630 : U8 = 1i64; - let List.631 : U8 = GetTagId List.626; - let List.632 : Int1 = lowlevel Eq List.630 List.631; - if List.632 then - let List.388 : Str = UnionAtIndex (Id 1) (Index 0) List.626; - let List.627 : [C {}, C Str] = TagId(1) List.388; - ret List.627; +procedure List.9 (List.388): + let List.640 : U64 = 0i64; + let List.633 : [C {}, C Str] = CallByName List.2 List.388 List.640; + let List.637 : U8 = 1i64; + let List.638 : U8 = GetTagId List.633; + let List.639 : Int1 = lowlevel Eq List.637 List.638; + if List.639 then + let List.389 : Str = UnionAtIndex (Id 1) (Index 0) List.633; + let List.634 : [C {}, C Str] = TagId(1) List.389; + ret List.634; else - dec List.626; - let List.629 : {} = Struct {}; - let List.628 : [C {}, C Str] = TagId(0) List.629; - ret List.628; + dec List.633; + let List.636 : {} = Struct {}; + let List.635 : [C {}, C Str] = TagId(0) List.636; + ret List.635; -procedure List.96 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.648 List.170 List.171 List.172 List.173 List.174: - let List.650 : Int1 = CallByName Num.22 List.173 List.174; - if List.650 then - let List.654 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.170 List.173; - inc List.654; - let List.175 : List Str = CallByName List.279 List.171 List.654 List.172; - let List.653 : U64 = 1i64; - let List.652 : U64 = CallByName Num.51 List.173 List.653; - jump List.648 List.170 List.175 List.172 List.652 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.655 List.171 List.172 List.173 List.174 List.175: + let List.657 : Int1 = CallByName Num.22 List.174 List.175; + if List.657 then + let List.661 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.171 List.174; + inc List.661; + let List.176 : List Str = CallByName List.280 List.172 List.661 List.173; + let List.660 : U64 = 1i64; + let List.659 : U64 = CallByName Num.51 List.174 List.660; + jump List.655 List.171 List.176 List.173 List.659 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.3; - jump List.648 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + inc #Derived_gen.0; + jump List.655 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 d9078225e1..1ba706987a 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.626 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.626; + let List.633 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.633; 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 604c1b89d9..7be7bf12f3 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 @@ -2,35 +2,35 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : [, C *self Int1, C *self Int1] = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : [, C *self Int1, C *self Int1] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Int1 = CallByName List.66 List.170 List.173; - let List.175 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Int1 = CallByName List.66 List.171 List.174; + let List.176 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.5; - jump List.629 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9; + inc #Derived_gen.7; + jump List.636 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 7a5123de46..e860685adf 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.626 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.626; + let List.633 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.633; procedure Num.75 (#Attr.2, #Attr.3): let Num.281 : 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 eafd7d9312..aab2d01365 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 @@ -2,25 +2,25 @@ procedure Bool.1 (): let Bool.23 : Int1 = false; ret Bool.23; -procedure List.2 (List.115, List.116): - let List.632 : U64 = CallByName List.6 List.115; - let List.628 : Int1 = CallByName Num.22 List.116 List.632; - if List.628 then - let List.630 : {} = CallByName List.66 List.115 List.116; - let List.629 : [C {}, C {}] = TagId(1) List.630; - ret List.629; +procedure List.2 (List.116, List.117): + let List.639 : U64 = CallByName List.6 List.116; + let List.635 : Int1 = CallByName Num.22 List.117 List.639; + if List.635 then + let List.637 : {} = CallByName List.66 List.116 List.117; + let List.636 : [C {}, C {}] = TagId(1) List.637; + ret List.636; else - let List.627 : {} = Struct {}; - let List.626 : [C {}, C {}] = TagId(0) List.627; - ret List.626; + let List.634 : {} = Struct {}; + let List.633 : [C {}, C {}] = TagId(0) List.634; + ret List.633; procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; procedure List.66 (#Attr.2, #Attr.3): - let List.631 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.631; + let List.638 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.638; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 ef5598f1e3..5b734e11a6 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.131, List.132): - let List.629 : U64 = 1i64; - let List.627 : List U8 = CallByName List.70 List.131 List.629; - let List.626 : List U8 = CallByName List.71 List.627 List.132; - ret List.626; +procedure List.4 (List.132, List.133): + let List.636 : U64 = 1i64; + let List.634 : List U8 = CallByName List.70 List.132 List.636; + let List.633 : List U8 = CallByName List.71 List.634 List.133; + ret List.633; procedure List.70 (#Attr.2, #Attr.3): - let List.630 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.630; + let List.637 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.637; procedure List.71 (#Attr.2, #Attr.3): - let List.628 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.628; + let List.635 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.635; 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 08a680c3d2..eb3ee132b0 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 @@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.18 (List.167, List.168, List.169): - let List.653 : U64 = 0i64; - let List.654 : U64 = CallByName List.6 List.167; - let List.652 : List U8 = CallByName List.96 List.167 List.168 List.169 List.653 List.654; - ret List.652; +procedure List.18 (List.168, List.169, List.170): + let List.660 : U64 = 0i64; + let List.661 : U64 = CallByName List.6 List.168; + let List.659 : List U8 = CallByName List.97 List.168 List.169 List.170 List.660 List.661; + ret List.659; -procedure List.4 (List.131, List.132): - let List.674 : U64 = 1i64; - let List.673 : List U8 = CallByName List.70 List.131 List.674; - let List.672 : List U8 = CallByName List.71 List.673 List.132; - ret List.672; +procedure List.4 (List.132, List.133): + let List.681 : U64 = 1i64; + let List.680 : List U8 = CallByName List.70 List.132 List.681; + let List.679 : List U8 = CallByName List.71 List.680 List.133; + ret List.679; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.66 (#Attr.2, #Attr.3): - let List.662 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.662; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.668 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.668; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.666 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.666; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.676 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.676; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; -procedure List.96 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.71 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.71 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.29; - jump List.629 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; + jump List.636 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; -procedure List.96 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38): - joinpoint List.655 List.170 List.171 List.172 List.173 List.174: - let List.657 : Int1 = CallByName Num.22 List.173 List.174; - if List.657 then - let List.661 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.661; - let List.175 : List U8 = CallByName Test.71 List.171 List.661; - let List.660 : U64 = 1i64; - let List.659 : U64 = CallByName Num.51 List.173 List.660; - jump List.655 List.170 List.175 List.172 List.659 List.174; +procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): + joinpoint List.662 List.171 List.172 List.173 List.174 List.175: + let List.664 : Int1 = CallByName Num.22 List.174 List.175; + if List.664 then + let List.668 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.668; + let List.176 : List U8 = CallByName Test.71 List.172 List.668; + let List.667 : U64 = 1i64; + let List.666 : U64 = CallByName Num.51 List.174 List.667; + jump List.662 List.171 List.176 List.173 List.666 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.34; - jump List.655 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38; + inc #Derived_gen.40; + jump List.662 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; procedure Num.127 (#Attr.2): let Num.286 : 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 925a9d40b2..1fdf3ab07d 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 @@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.4 (List.131, List.132): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.131 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.132; - ret List.646; +procedure List.4 (List.132, List.133): + let List.655 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.132 List.655; + let List.653 : List U8 = CallByName List.71 List.654 List.133; + ret List.653; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.649; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.647; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.71 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.71 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.16; - jump List.629 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.636 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; procedure Num.127 (#Attr.2): let Num.282 : 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 00a931097f..4d2e25850f 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 @@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.4 (List.131, List.132): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.131 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.132; - ret List.646; +procedure List.4 (List.132, List.133): + let List.655 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.132 List.655; + let List.653 : List U8 = CallByName List.71 List.654 List.133; + ret List.653; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.649; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.647; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.71 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.71 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.20; - jump List.629 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + jump List.636 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; procedure Num.127 (#Attr.2): let Num.282 : 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 c83d470e90..f484b24175 100644 --- a/crates/compiler/test_mono/generated/encode_derived_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_string.txt @@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.4 (List.131, List.132): - let List.636 : U64 = 1i64; - let List.635 : List U8 = CallByName List.70 List.131 List.636; - let List.634 : List U8 = CallByName List.71 List.635 List.132; - ret List.634; +procedure List.4 (List.132, List.133): + let List.643 : U64 = 1i64; + let List.642 : List U8 = CallByName List.70 List.132 List.643; + let List.641 : List U8 = CallByName List.71 List.642 List.133; + ret List.641; procedure List.70 (#Attr.2, #Attr.3): - let List.630 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.630; + let List.637 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.637; procedure List.71 (#Attr.2, #Attr.3): - let List.628 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.628; + let List.635 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.635; procedure List.8 (#Attr.2, #Attr.3): - let List.638 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.638; + let List.645 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.645; procedure Num.127 (#Attr.2): let Num.282 : 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 fa30b19641..ff27b9865a 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.13 (#Attr.2, #Attr.3): - let List.652 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.652; + let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.659; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.4 (List.131, List.132): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.131 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.132; - ret List.646; +procedure List.4 (List.132, List.133): + let List.655 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.132 List.655; + let List.653 : List U8 = CallByName List.71 List.654 List.133; + ret List.653; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.649; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.647; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Str = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.64 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Str = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.64 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.13; - jump List.629 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.636 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; procedure Num.127 (#Attr.2): let Num.282 : 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 2acf475c88..567bfbd65f 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.13 (#Attr.2, #Attr.3): - let List.652 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.652; + let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.659; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.4 (List.131, List.132): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.131 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.132; - ret List.646; +procedure List.4 (List.132, List.133): + let List.655 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.132 List.655; + let List.653 : List U8 = CallByName List.71 List.654 List.133; + ret List.653; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.649; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.647; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Str = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.64 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Str = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.64 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.23; - jump List.629 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + inc #Derived_gen.14; + jump List.636 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure Num.127 (#Attr.2): let Num.282 : 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 990aa944f6..6b08e4660b 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -145,7 +145,7 @@ procedure Dict.43 (Dict.126): let Dict.1101 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Inspect.30 Dict.126; ret Dict.1101; -procedure Dict.45 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50): +procedure Dict.45 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): joinpoint Dict.744 Dict.228 Dict.229 Dict.230 Dict.231 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236: let Dict.237 : {U32, U32} = CallByName Dict.22 Dict.228 Dict.230; let Dict.791 : U32 = StructAtIndex 1 Dict.237; @@ -188,8 +188,8 @@ procedure Dict.45 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_g let Dict.246 : U32 = CallByName Dict.55 Dict.231; jump Dict.744 Dict.228 Dict.229 Dict.245 Dict.246 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236; in - inc #Derived_gen.46; - jump Dict.744 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50; + inc #Derived_gen.49; + jump Dict.744 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; procedure Dict.48 (): let Dict.868 : U32 = 0i64; @@ -304,7 +304,7 @@ procedure Dict.72 (Dict.412, Dict.413, Dict.414): let Dict.854 : {U64, U32} = CallByName Dict.73 Dict.412 Dict.417 Dict.416; ret Dict.854; -procedure Dict.73 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23): +procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18): joinpoint Dict.855 Dict.418 Dict.419 Dict.420: let Dict.421 : {U32, U32} = CallByName Dict.22 Dict.418 Dict.419; let Dict.862 : U32 = StructAtIndex 1 Dict.421; @@ -319,10 +319,10 @@ procedure Dict.73 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23): let Dict.856 : {U64, U32} = Struct {Dict.419, Dict.420}; ret Dict.856; in - inc #Derived_gen.21; - jump Dict.855 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; + inc #Derived_gen.16; + jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; -procedure Dict.74 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53): +procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): joinpoint Dict.761 Dict.422 Dict.423 Dict.424: let Dict.425 : {U32, U32} = CallByName Dict.22 Dict.422 Dict.424; let Dict.771 : U32 = StructAtIndex 1 Dict.425; @@ -341,7 +341,7 @@ procedure Dict.74 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53): let Dict.762 : List {U32, U32} = CallByName List.3 Dict.422 Dict.424 Dict.423; ret Dict.762; in - jump Dict.761 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; + jump Dict.761 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56; procedure Dict.75 (Dict.427, Dict.428): let Dict.757 : U64 = 1i64; @@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.11 (List.145, List.146): - let List.688 : List {U32, U32} = CallByName List.68 List.146; - let List.687 : List {U32, U32} = CallByName List.94 List.145 List.146 List.688; - ret List.687; +procedure List.11 (List.146, List.147): + let List.695 : List {U32, U32} = CallByName List.68 List.147; + let List.694 : List {U32, U32} = CallByName List.95 List.146 List.147 List.695; + ret List.694; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.18 (List.167, List.168, List.169): - let List.691 : U64 = 0i64; - let List.692 : U64 = CallByName List.6 List.167; - let List.690 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.691 List.692; - ret List.690; +procedure List.18 (List.168, List.169, List.170): + let List.698 : U64 = 0i64; + let List.699 : U64 = CallByName List.6 List.168; + let List.697 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.698 List.699; + ret List.697; -procedure List.3 (List.123, List.124, List.125): - let List.652 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.123 List.124 List.125; - let List.651 : List {U32, U32} = StructAtIndex 0 List.652; - ret List.651; - -procedure List.3 (List.123, List.124, List.125): - let List.654 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.123 List.124 List.125; - let List.653 : List {Str, I64} = StructAtIndex 0 List.654; - let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.654; - dec #Derived_gen.71; - ret List.653; - -procedure List.4 (List.131, List.132): - let List.663 : U64 = 1i64; - let List.661 : List {Str, I64} = CallByName List.70 List.131 List.663; - let List.660 : List {Str, I64} = CallByName List.71 List.661 List.132; - ret List.660; - -procedure List.6 (#Attr.2): - let List.642 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.642; - -procedure List.6 (#Attr.2): - let List.689 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.689; - -procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; - -procedure List.64 (List.120, List.121, List.122): - let List.650 : U64 = CallByName List.6 List.120; - let List.647 : Int1 = CallByName Num.22 List.121 List.650; - if List.647 then - let List.648 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.120 List.121 List.122; - ret List.648; - else - let List.646 : {List {U32, U32}, {U32, U32}} = Struct {List.120, List.122}; - ret List.646; - -procedure List.64 (List.120, List.121, List.122): - let List.659 : U64 = CallByName List.6 List.120; - let List.656 : Int1 = CallByName Num.22 List.121 List.659; - if List.656 then - let List.657 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.120 List.121 List.122; - ret List.657; - else - let List.655 : {List {Str, I64}, {Str, I64}} = Struct {List.120, List.122}; - ret List.655; - -procedure List.66 (#Attr.2, #Attr.3): - let List.700 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.700; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.649 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.649; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.658 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; +procedure List.3 (List.124, List.125, List.126): + let List.659 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.124 List.125 List.126; + let List.658 : List {U32, U32} = StructAtIndex 0 List.659; ret List.658; -procedure List.68 (#Attr.2): - let List.686 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; - ret List.686; +procedure List.3 (List.124, List.125, List.126): + let List.661 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.124 List.125 List.126; + let List.660 : List {Str, I64} = StructAtIndex 0 List.661; + let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.661; + dec #Derived_gen.71; + ret List.660; -procedure List.70 (#Attr.2, #Attr.3): - let List.664 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.664; +procedure List.4 (List.132, List.133): + let List.670 : U64 = 1i64; + let List.668 : List {Str, I64} = CallByName List.70 List.132 List.670; + let List.667 : List {Str, I64} = CallByName List.71 List.668 List.133; + ret List.667; -procedure List.71 (#Attr.2, #Attr.3): - let List.662 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.662; +procedure List.6 (#Attr.2): + let List.649 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.649; -procedure List.71 (#Attr.2, #Attr.3): - let List.683 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.683; +procedure List.6 (#Attr.2): + let List.696 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.696; -procedure List.83 (List.176, List.177, List.178): - let List.666 : U64 = 0i64; - let List.667 : U64 = CallByName List.6 List.176; - let List.665 : List {U32, U32} = CallByName List.97 List.176 List.177 List.178 List.666 List.667; +procedure List.6 (#Attr.2): + let List.708 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.708; + +procedure List.64 (List.121, List.122, List.123): + let List.657 : U64 = CallByName List.6 List.121; + let List.654 : Int1 = CallByName Num.22 List.122 List.657; + if List.654 then + let List.655 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.121 List.122 List.123; + ret List.655; + else + let List.653 : {List {U32, U32}, {U32, U32}} = Struct {List.121, List.123}; + ret List.653; + +procedure List.64 (List.121, List.122, List.123): + let List.666 : U64 = CallByName List.6 List.121; + let List.663 : Int1 = CallByName Num.22 List.122 List.666; + if List.663 then + let List.664 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.121 List.122 List.123; + ret List.664; + else + let List.662 : {List {Str, I64}, {Str, I64}} = Struct {List.121, List.123}; + ret List.662; + +procedure List.66 (#Attr.2, #Attr.3): + let List.707 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; + +procedure List.67 (#Attr.2, #Attr.3, #Attr.4): + let List.656 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.656; + +procedure List.67 (#Attr.2, #Attr.3, #Attr.4): + let List.665 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; ret List.665; -procedure List.94 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): - joinpoint List.677 List.147 List.148 List.149: - let List.685 : U64 = 0i64; - let List.679 : Int1 = CallByName Num.24 List.148 List.685; - if List.679 then - let List.684 : U64 = 1i64; - let List.681 : U64 = CallByName Num.75 List.148 List.684; - let List.682 : List {U32, U32} = CallByName List.71 List.149 List.147; - jump List.677 List.147 List.681 List.682; - else - ret List.149; - in - jump List.677 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56; +procedure List.68 (#Attr.2): + let List.693 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.693; -procedure List.96 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.693 List.170 List.171 List.172 List.173 List.174: - let List.695 : Int1 = CallByName Num.22 List.173 List.174; - if List.695 then - let List.699 : {Str, I64} = CallByName List.66 List.170 List.173; - inc List.699; - let List.175 : {Str, Int1} = CallByName Dict.188 List.171 List.699 List.172; - let List.698 : U64 = 1i64; - let List.697 : U64 = CallByName Num.51 List.173 List.698; - jump List.693 List.170 List.175 List.172 List.697 List.174; - else - dec List.170; - ret List.171; - in - inc #Derived_gen.12; - jump List.693 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; +procedure List.70 (#Attr.2, #Attr.3): + let List.671 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.671; -procedure List.96 (#Derived_gen.59, #Derived_gen.60, #Derived_gen.61, #Derived_gen.62, #Derived_gen.63): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, I64} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; - else - dec List.170; - ret List.171; - in - inc #Derived_gen.59; - jump List.629 #Derived_gen.59 #Derived_gen.60 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63; +procedure List.71 (#Attr.2, #Attr.3): + let List.669 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.669; -procedure List.97 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35): - joinpoint List.668 List.179 List.180 List.181 List.182 List.183: - let List.670 : Int1 = CallByName Num.22 List.182 List.183; - if List.670 then - let List.674 : {Str, I64} = CallByName List.66 List.179 List.182; - inc List.674; - let List.184 : List {U32, U32} = CallByName Dict.406 List.180 List.674 List.182 List.181; - let List.673 : U64 = 1i64; - let List.672 : U64 = CallByName Num.51 List.182 List.673; - jump List.668 List.179 List.184 List.181 List.672 List.183; +procedure List.71 (#Attr.2, #Attr.3): + let List.690 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.690; + +procedure List.83 (List.177, List.178, List.179): + let List.673 : U64 = 0i64; + let List.674 : U64 = CallByName List.6 List.177; + let List.672 : List {U32, U32} = CallByName List.98 List.177 List.178 List.179 List.673 List.674; + ret List.672; + +procedure List.95 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39): + joinpoint List.684 List.148 List.149 List.150: + let List.692 : U64 = 0i64; + let List.686 : Int1 = CallByName Num.24 List.149 List.692; + if List.686 then + let List.691 : U64 = 1i64; + let List.688 : U64 = CallByName Num.75 List.149 List.691; + let List.689 : List {U32, U32} = CallByName List.71 List.150 List.148; + jump List.684 List.148 List.688 List.689; else - dec List.179; - ret List.180; + ret List.150; in - inc #Derived_gen.31; - jump List.668 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35; + jump List.684 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; + +procedure List.97 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, I64} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; + else + dec List.171; + ret List.172; + in + inc #Derived_gen.26; + jump List.636 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + +procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): + joinpoint List.700 List.171 List.172 List.173 List.174 List.175: + let List.702 : Int1 = CallByName Num.22 List.174 List.175; + if List.702 then + let List.706 : {Str, I64} = CallByName List.66 List.171 List.174; + inc List.706; + let List.176 : {Str, Int1} = CallByName Dict.188 List.172 List.706 List.173; + let List.705 : U64 = 1i64; + let List.704 : U64 = CallByName Num.51 List.174 List.705; + jump List.700 List.171 List.176 List.173 List.704 List.175; + else + dec List.171; + ret List.172; + in + inc #Derived_gen.40; + jump List.700 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; + +procedure List.98 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65): + joinpoint List.675 List.180 List.181 List.182 List.183 List.184: + let List.677 : Int1 = CallByName Num.22 List.183 List.184; + if List.677 then + let List.681 : {Str, I64} = CallByName List.66 List.180 List.183; + inc List.681; + let List.185 : List {U32, U32} = CallByName Dict.406 List.181 List.681 List.183 List.182; + let List.680 : U64 = 1i64; + let List.679 : U64 = CallByName Num.51 List.183 List.680; + jump List.675 List.180 List.185 List.182 List.679 List.184; + else + dec List.180; + ret List.181; + in + inc #Derived_gen.61; + jump List.675 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; procedure Num.131 (#Attr.2): let Num.289 : 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 0df9b458c7..83c3be34b2 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -135,35 +135,35 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : I64 = CallByName List.66 List.170 List.173; - let List.175 : {Str, Int1} = CallByName Inspect.160 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : I64 = CallByName List.66 List.171 List.174; + let List.176 : {Str, Int1} = CallByName Inspect.160 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.19; - jump List.629 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; + inc #Derived_gen.8; + jump List.636 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; 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/inspect_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt index 67829099fc..7daa9676bf 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 @@ -221,67 +221,67 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.18 (List.167, List.168, List.169): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.167; - let List.638 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.639 List.640; - ret List.638; +procedure List.18 (List.168, List.169, List.170): + let List.646 : U64 = 0i64; + let List.647 : U64 = CallByName List.6 List.168; + let List.645 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.646 List.647; + ret List.645; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.656 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.656; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.655 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.655; -procedure List.96 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): - joinpoint List.641 List.170 List.171 List.172 List.173 List.174: - let List.643 : Int1 = CallByName Num.22 List.173 List.174; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.647; - let List.175 : {Str, Int1} = CallByName Inspect.233 List.171 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.173 List.646; - jump List.641 List.170 List.175 List.172 List.645 List.174; +procedure List.97 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.28; - jump List.641 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; + jump List.636 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; -procedure List.96 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : {Str, Int1} = CallByName Inspect.233 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): + joinpoint List.648 List.171 List.172 List.173 List.174 List.175: + let List.650 : Int1 = CallByName Num.22 List.174 List.175; + if List.650 then + let List.654 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.654; + let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.654; + let List.653 : U64 = 1i64; + let List.652 : U64 = CallByName Num.51 List.174 List.653; + jump List.648 List.171 List.176 List.173 List.652 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.33; - jump List.629 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; + jump List.648 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; 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.txt b/crates/compiler/test_mono/generated/inspect_derived_record.txt index f87383ea6d..a8e07ad2f2 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -161,36 +161,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {[C I64, C Decimal], Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : {Str, Int1} = CallByName Inspect.233 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {[C I64, C Decimal], Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.22; - jump List.629 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; + inc #Derived_gen.14; + jump List.636 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; 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_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt index 9811214c08..9dcbf0f869 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 @@ -139,36 +139,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : {Str, Int1} = CallByName Inspect.233 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.16; - jump List.629 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + inc #Derived_gen.12; + jump List.636 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 d8856469ce..01354211d1 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 @@ -146,36 +146,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : {Str, Int1} = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : {Str, Str} = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : {Str, Int1} = CallByName Inspect.233 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.20; - jump List.629 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + inc #Derived_gen.16; + jump List.636 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 5faa75623b..611c8ce2ac 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 @@ -132,43 +132,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.114): - let List.639 : U64 = CallByName List.6 List.114; - let List.640 : U64 = 0i64; - let List.638 : Int1 = CallByName Bool.11 List.639 List.640; - ret List.638; +procedure List.1 (List.115): + let List.646 : U64 = CallByName List.6 List.115; + let List.647 : U64 = 0i64; + let List.645 : Int1 = CallByName Bool.11 List.646 List.647; + ret List.645; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : Str = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : Str = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Str = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : Str = CallByName Inspect.210 List.171 List.635; - dec List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Str = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : Str = CallByName Inspect.210 List.172 List.642; + dec List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.20; - jump List.629 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + inc #Derived_gen.10; + jump List.636 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 4239ac4296..7d0288da7d 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 @@ -135,43 +135,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.114): - let List.639 : U64 = CallByName List.6 List.114; - let List.640 : U64 = 0i64; - let List.638 : Int1 = CallByName Bool.11 List.639 List.640; - ret List.638; +procedure List.1 (List.115): + let List.646 : U64 = CallByName List.6 List.115; + let List.647 : U64 = 0i64; + let List.645 : Int1 = CallByName Bool.11 List.646 List.647; + ret List.645; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : Str = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : Str = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Str = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : Str = CallByName Inspect.210 List.171 List.635; - dec List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Str = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : Str = CallByName Inspect.210 List.172 List.642; + dec List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.13; - jump List.629 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + inc #Derived_gen.15; + jump List.636 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 9ece816509..3a099114ed 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.626 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.626; + let List.633 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.633; 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/issue_2583_specialize_errors_behind_unified_branches.txt b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt index ce9caa2585..fd4fdc38b8 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 @@ -6,40 +6,40 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.2 (List.115, List.116): - let List.640 : U64 = CallByName List.6 List.115; - let List.636 : Int1 = CallByName Num.22 List.116 List.640; - if List.636 then - let List.638 : I64 = CallByName List.66 List.115 List.116; - let List.637 : [C {}, C I64] = TagId(1) List.638; - ret List.637; +procedure List.2 (List.116, List.117): + let List.647 : U64 = CallByName List.6 List.116; + let List.643 : Int1 = CallByName Num.22 List.117 List.647; + if List.643 then + let List.645 : I64 = CallByName List.66 List.116 List.117; + let List.644 : [C {}, C I64] = TagId(1) List.645; + ret List.644; else - let List.635 : {} = Struct {}; - let List.634 : [C {}, C I64] = TagId(0) List.635; - ret List.634; + let List.642 : {} = Struct {}; + let List.641 : [C {}, C I64] = TagId(0) List.642; + ret List.641; procedure List.6 (#Attr.2): - let List.641 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.641; + let List.648 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.648; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; -procedure List.9 (List.387): - let List.633 : U64 = 0i64; - let List.626 : [C {}, C I64] = CallByName List.2 List.387 List.633; - let List.630 : U8 = 1i64; - let List.631 : U8 = GetTagId List.626; - let List.632 : Int1 = lowlevel Eq List.630 List.631; - if List.632 then - let List.388 : I64 = UnionAtIndex (Id 1) (Index 0) List.626; - let List.627 : [C Int1, C I64] = TagId(1) List.388; - ret List.627; +procedure List.9 (List.388): + let List.640 : U64 = 0i64; + let List.633 : [C {}, C I64] = CallByName List.2 List.388 List.640; + let List.637 : U8 = 1i64; + let List.638 : U8 = GetTagId List.633; + let List.639 : Int1 = lowlevel Eq List.637 List.638; + if List.639 then + let List.389 : I64 = UnionAtIndex (Id 1) (Index 0) List.633; + let List.634 : [C Int1, C I64] = TagId(1) List.389; + ret List.634; else - let List.629 : Int1 = true; - let List.628 : [C Int1, C I64] = TagId(0) List.629; - ret List.628; + let List.636 : Int1 = true; + let List.635 : [C Int1, C I64] = TagId(0) List.636; + ret List.635; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 3bc2dbf834..c7835fac32 100644 --- a/crates/compiler/test_mono/generated/issue_4770.txt +++ b/crates/compiler/test_mono/generated/issue_4770.txt @@ -6,118 +6,118 @@ procedure Bool.2 (): let Bool.24 : Int1 = true; ret Bool.24; -procedure List.101 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6): - joinpoint List.664 List.286 List.287 List.288 List.289 List.290 List.291: - let List.666 : Int1 = CallByName Num.22 List.290 List.291; - if List.666 then - let List.672 : [C I64, C List *self] = CallByName List.66 List.286 List.290; - inc List.672; - let List.673 : [C I64, C List *self] = CallByName List.66 List.287 List.290; - inc List.673; - let List.292 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.672 List.673; - let List.668 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.288 List.292; - let List.670 : U64 = 1i64; - let List.669 : U64 = CallByName Num.51 List.290 List.670; - jump List.664 List.286 List.287 List.668 List.289 List.669 List.291; +procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): + joinpoint List.671 List.287 List.288 List.289 List.290 List.291 List.292: + let List.673 : Int1 = CallByName Num.22 List.291 List.292; + if List.673 then + let List.679 : [C I64, C List *self] = CallByName List.66 List.287 List.291; + inc List.679; + let List.680 : [C I64, C List *self] = CallByName List.66 List.288 List.291; + inc List.680; + let List.293 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.679 List.680; + let List.675 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.289 List.293; + let List.677 : U64 = 1i64; + let List.676 : U64 = CallByName Num.51 List.291 List.677; + jump List.671 List.287 List.288 List.675 List.290 List.676 List.292; else - dec List.286; dec List.287; - ret List.288; + dec List.288; + ret List.289; in + inc #Derived_gen.0; inc #Derived_gen.1; - inc #Derived_gen.2; - jump List.664 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6; + jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; -procedure List.111 (List.540, List.541, List.542): - let List.640 : U64 = 0i64; - let List.641 : U64 = CallByName List.6 List.540; - let List.639 : [C {}, C {}] = CallByName List.80 List.540 List.541 List.542 List.640 List.641; - ret List.639; +procedure List.112 (List.547, List.548, List.549): + let List.647 : U64 = 0i64; + let List.648 : U64 = CallByName List.6 List.547; + let List.646 : [C {}, C {}] = CallByName List.80 List.547 List.548 List.549 List.647 List.648; + ret List.646; -procedure List.23 (List.282, List.283, List.284): - let List.676 : U64 = CallByName List.6 List.282; - let List.677 : U64 = CallByName List.6 List.283; - let List.285 : U64 = CallByName Num.148 List.676 List.677; - let List.662 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.285; - let List.663 : U64 = 0i64; - let List.661 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.101 List.282 List.283 List.662 List.284 List.663 List.285; +procedure List.23 (List.283, List.284, List.285): + let List.683 : U64 = CallByName List.6 List.283; + let List.684 : U64 = CallByName List.6 List.284; + let List.286 : U64 = CallByName Num.148 List.683 List.684; + let List.669 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.286; + let List.670 : U64 = 0i64; + let List.668 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.102 List.283 List.284 List.669 List.285 List.670 List.286; + ret List.668; + +procedure List.244 (List.635, List.245, List.243): + let List.665 : Int1 = CallByName Test.1 List.245; + if List.665 then + let List.667 : {} = Struct {}; + let List.666 : [C {}, C {}] = TagId(1) List.667; + ret List.666; + else + let List.664 : {} = Struct {}; + let List.663 : [C {}, C {}] = TagId(0) List.664; + ret List.663; + +procedure List.56 (List.242, List.243): + let List.644 : {} = Struct {}; + let List.636 : [C {}, C {}] = CallByName List.112 List.242 List.644 List.243; + let List.641 : U8 = 1i64; + let List.642 : U8 = GetTagId List.636; + let List.643 : Int1 = lowlevel Eq List.641 List.642; + if List.643 then + let List.637 : Int1 = CallByName Bool.2; + ret List.637; + else + let List.638 : Int1 = CallByName Bool.1; + ret List.638; + +procedure List.6 (#Attr.2): + let List.634 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.634; + +procedure List.6 (#Attr.2): + let List.662 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.662; + +procedure List.66 (#Attr.2, #Attr.3): + let List.661 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; ret List.661; -procedure List.243 (List.628, List.244, List.242): - let List.658 : Int1 = CallByName Test.1 List.244; - if List.658 then - let List.660 : {} = Struct {}; - let List.659 : [C {}, C {}] = TagId(1) List.660; - ret List.659; - else - let List.657 : {} = Struct {}; - let List.656 : [C {}, C {}] = TagId(0) List.657; - ret List.656; - -procedure List.56 (List.241, List.242): - let List.637 : {} = Struct {}; - let List.629 : [C {}, C {}] = CallByName List.111 List.241 List.637 List.242; - let List.634 : U8 = 1i64; - let List.635 : U8 = GetTagId List.629; - let List.636 : Int1 = lowlevel Eq List.634 List.635; - if List.636 then - let List.630 : Int1 = CallByName Bool.2; - ret List.630; - else - let List.631 : Int1 = CallByName Bool.1; - ret List.631; - -procedure List.6 (#Attr.2): - let List.627 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.627; - -procedure List.6 (#Attr.2): - let List.655 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.655; - procedure List.66 (#Attr.2, #Attr.3): - let List.654 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.654; - -procedure List.66 (#Attr.2, #Attr.3): - let List.674 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.681 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.681; procedure List.68 (#Attr.2): - let List.675 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; - ret List.675; + let List.682 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.682; procedure List.71 (#Attr.2, #Attr.3): - let List.671 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.671; + let List.678 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.678; procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.642 List.543 List.544 List.545 List.546 List.547: - let List.644 : Int1 = CallByName Num.22 List.546 List.547; - if List.644 then - let List.653 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.543 List.546; - inc List.653; - let List.645 : [C {}, C {}] = CallByName List.243 List.544 List.653 List.545; - let List.650 : U8 = 1i64; - let List.651 : U8 = GetTagId List.645; - let List.652 : Int1 = lowlevel Eq List.650 List.651; - if List.652 then - let List.548 : {} = UnionAtIndex (Id 1) (Index 0) List.645; - let List.648 : U64 = 1i64; - let List.647 : U64 = CallByName Num.51 List.546 List.648; - jump List.642 List.543 List.548 List.545 List.647 List.547; + joinpoint List.649 List.550 List.551 List.552 List.553 List.554: + let List.651 : Int1 = CallByName Num.22 List.553 List.554; + if List.651 then + let List.660 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.550 List.553; + inc List.660; + let List.652 : [C {}, C {}] = CallByName List.244 List.551 List.660 List.552; + let List.657 : U8 = 1i64; + let List.658 : U8 = GetTagId List.652; + let List.659 : Int1 = lowlevel Eq List.657 List.658; + if List.659 then + let List.555 : {} = UnionAtIndex (Id 1) (Index 0) List.652; + let List.655 : U64 = 1i64; + let List.654 : U64 = CallByName Num.51 List.553 List.655; + jump List.649 List.550 List.555 List.552 List.654 List.554; else - dec List.543; - let List.549 : {} = UnionAtIndex (Id 0) (Index 0) List.645; - let List.649 : [C {}, C {}] = TagId(0) List.549; - ret List.649; + dec List.550; + let List.556 : {} = UnionAtIndex (Id 0) (Index 0) List.652; + let List.656 : [C {}, C {}] = TagId(0) List.556; + ret List.656; else - dec List.543; - let List.643 : [C {}, C {}] = TagId(1) List.544; - ret List.643; + dec List.550; + let List.650 : [C {}, C {}] = TagId(1) List.551; + ret List.650; in inc #Derived_gen.7; - jump List.642 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + jump List.649 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; procedure Num.148 (Num.225, Num.226): let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226; @@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3): let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3; ret Num.284; -procedure Test.1 (#Derived_gen.0): +procedure Test.1 (#Derived_gen.6): joinpoint Test.26 Test.6: let Test.65 : [C I64, C List *self] = StructAtIndex 1 Test.6; let Test.66 : U8 = 0i64; @@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.0): let Test.44 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.45, Test.46}; jump Test.26 Test.44; in - jump Test.26 #Derived_gen.0; + jump Test.26 #Derived_gen.6; procedure Test.15 (Test.16, Test.17): let Test.36 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.16, Test.17}; 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 a9e937ea52..8ac72ab367 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.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : [, C {[C *self, ], *self}] = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : [, C {[C *self, ], *self}] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; procedure List.6 (#Attr.2): - let List.637 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.637; + let List.644 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.644; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : [C *self, ] = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : [, C {[C *self, ], *self}] = CallByName Test.7 List.171 List.635; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : [C *self, ] = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : [, C {[C *self, ], *self}] = CallByName Test.7 List.172 List.642; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.0; - jump List.629 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.636 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 2092957cd1..33c6167af3 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.131, List.132): - let List.629 : U64 = 1i64; - let List.627 : List I64 = CallByName List.70 List.131 List.629; - let List.626 : List I64 = CallByName List.71 List.627 List.132; - ret List.626; +procedure List.4 (List.132, List.133): + let List.636 : U64 = 1i64; + let List.634 : List I64 = CallByName List.70 List.132 List.636; + let List.633 : List I64 = CallByName List.71 List.634 List.133; + ret List.633; procedure List.70 (#Attr.2, #Attr.3): - let List.630 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.630; + let List.637 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.637; procedure List.71 (#Attr.2, #Attr.3): - let List.628 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.628; + let List.635 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.635; 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 f3083f098f..4014974835 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.131, List.132): - let List.629 : U64 = 1i64; - let List.627 : List I64 = CallByName List.70 List.131 List.629; - let List.626 : List I64 = CallByName List.71 List.627 List.132; - ret List.626; +procedure List.4 (List.132, List.133): + let List.636 : U64 = 1i64; + let List.634 : List I64 = CallByName List.70 List.132 List.636; + let List.633 : List I64 = CallByName List.71 List.634 List.133; + ret List.633; procedure List.70 (#Attr.2, #Attr.3): - let List.630 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.630; + let List.637 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.637; procedure List.71 (#Attr.2, #Attr.3): - let List.628 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.628; + let List.635 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.635; 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 3eea497ce7..f49797e939 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.123, List.124, List.125): - let List.629 : {List I64, I64} = CallByName List.64 List.123 List.124 List.125; - let List.628 : List I64 = StructAtIndex 0 List.629; - ret List.628; +procedure List.3 (List.124, List.125, List.126): + let List.636 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; + let List.635 : List I64 = StructAtIndex 0 List.636; + ret List.635; procedure List.6 (#Attr.2): - let List.627 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.627; + let List.634 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.634; -procedure List.64 (List.120, List.121, List.122): - let List.634 : U64 = CallByName List.6 List.120; - let List.631 : Int1 = CallByName Num.22 List.121 List.634; - if List.631 then - let List.632 : {List I64, I64} = CallByName List.67 List.120 List.121 List.122; - ret List.632; +procedure List.64 (List.121, List.122, List.123): + let List.641 : U64 = CallByName List.6 List.121; + let List.638 : Int1 = CallByName Num.22 List.122 List.641; + if List.638 then + let List.639 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; + ret List.639; else - let List.630 : {List I64, I64} = Struct {List.120, List.122}; - ret List.630; + let List.637 : {List I64, I64} = Struct {List.121, List.123}; + ret List.637; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.633 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.633; + let List.640 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.640; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 f3dbacbd92..f8e5d20184 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.115, List.116): - let List.632 : U64 = CallByName List.6 List.115; - let List.628 : Int1 = CallByName Num.22 List.116 List.632; - if List.628 then - let List.630 : I64 = CallByName List.66 List.115 List.116; - let List.629 : [C {}, C I64] = TagId(1) List.630; - ret List.629; +procedure List.2 (List.116, List.117): + let List.639 : U64 = CallByName List.6 List.116; + let List.635 : Int1 = CallByName Num.22 List.117 List.639; + if List.635 then + let List.637 : I64 = CallByName List.66 List.116 List.117; + let List.636 : [C {}, C I64] = TagId(1) List.637; + ret List.636; else - let List.627 : {} = Struct {}; - let List.626 : [C {}, C I64] = TagId(0) List.627; - ret List.626; + let List.634 : {} = Struct {}; + let List.633 : [C {}, C I64] = TagId(0) List.634; + ret List.633; procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; procedure List.66 (#Attr.2, #Attr.3): - let List.631 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.631; + let List.638 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.638; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 856c83106f..8454f7c836 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.626 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.626; + let List.633 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.633; procedure List.6 (#Attr.2): - let List.627 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.627; + let List.634 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.634; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 2e42dd02f4..2f8a18275d 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.18 (List.167, List.168, List.169): - let List.638 : U64 = 0i64; - let List.639 : U64 = CallByName List.6 List.167; - let List.637 : List Str = CallByName List.96 List.167 List.168 List.169 List.638 List.639; - ret List.637; +procedure List.18 (List.168, List.169, List.170): + let List.645 : U64 = 0i64; + let List.646 : U64 = CallByName List.6 List.168; + let List.644 : List Str = CallByName List.97 List.168 List.169 List.170 List.645 List.646; + ret List.644; -procedure List.2 (List.115, List.116): - let List.632 : U64 = CallByName List.6 List.115; - let List.628 : Int1 = CallByName Num.22 List.116 List.632; - if List.628 then - let List.630 : Str = CallByName List.66 List.115 List.116; - inc List.630; - let List.629 : [C {}, C Str] = TagId(1) List.630; - ret List.629; +procedure List.2 (List.116, List.117): + let List.639 : U64 = CallByName List.6 List.116; + let List.635 : Int1 = CallByName Num.22 List.117 List.639; + if List.635 then + let List.637 : Str = CallByName List.66 List.116 List.117; + inc List.637; + let List.636 : [C {}, C Str] = TagId(1) List.637; + ret List.636; else - let List.627 : {} = Struct {}; - let List.626 : [C {}, C Str] = TagId(0) List.627; - ret List.626; + let List.634 : {} = Struct {}; + let List.633 : [C {}, C Str] = TagId(0) List.634; + ret List.633; -procedure List.279 (List.280, List.281, List.277): - let List.649 : Str = CallByName Test.3 List.281; - let List.648 : List Str = CallByName List.71 List.280 List.649; - ret List.648; +procedure List.280 (List.281, List.282, List.278): + let List.656 : Str = CallByName Test.3 List.282; + let List.655 : List Str = CallByName List.71 List.281 List.656; + ret List.655; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.635 : List Str = CallByName List.68 List.278; - let List.634 : List Str = CallByName List.18 List.276 List.635 List.277; - ret List.634; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.642 : List Str = CallByName List.68 List.279; + let List.641 : List Str = CallByName List.18 List.277 List.642 List.278; + ret List.641; procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; procedure List.66 (#Attr.2, #Attr.3): - let List.631 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.631; + let List.638 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.638; procedure List.68 (#Attr.2): - let List.651 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.651; + let List.658 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.658; procedure List.71 (#Attr.2, #Attr.3): - let List.650 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.650; + let List.657 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.640 List.170 List.171 List.172 List.173 List.174: - let List.642 : Int1 = CallByName Num.22 List.173 List.174; - if List.642 then - let List.646 : Str = CallByName List.66 List.170 List.173; - inc List.646; - let List.175 : List Str = CallByName List.279 List.171 List.646 List.172; - dec List.646; - let List.645 : U64 = 1i64; - let List.644 : U64 = CallByName Num.51 List.173 List.645; - jump List.640 List.170 List.175 List.172 List.644 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.647 List.171 List.172 List.173 List.174 List.175: + let List.649 : Int1 = CallByName Num.22 List.174 List.175; + if List.649 then + let List.653 : Str = CallByName List.66 List.171 List.174; + inc List.653; + let List.176 : List Str = CallByName List.280 List.172 List.653 List.173; + dec List.653; + let List.652 : U64 = 1i64; + let List.651 : U64 = CallByName Num.51 List.174 List.652; + jump List.647 List.171 List.176 List.173 List.651 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.0; - jump List.640 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.647 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 0a2241854a..da8fc3050c 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.18 (List.167, List.168, List.169): - let List.638 : U64 = 0i64; - let List.639 : U64 = CallByName List.6 List.167; - let List.637 : List Str = CallByName List.96 List.167 List.168 List.169 List.638 List.639; - ret List.637; +procedure List.18 (List.168, List.169, List.170): + let List.645 : U64 = 0i64; + let List.646 : U64 = CallByName List.6 List.168; + let List.644 : List Str = CallByName List.97 List.168 List.169 List.170 List.645 List.646; + ret List.644; -procedure List.2 (List.115, List.116): - let List.632 : U64 = CallByName List.6 List.115; - let List.628 : Int1 = CallByName Num.22 List.116 List.632; - if List.628 then - let List.630 : Str = CallByName List.66 List.115 List.116; - inc List.630; - let List.629 : [C {}, C Str] = TagId(1) List.630; - ret List.629; +procedure List.2 (List.116, List.117): + let List.639 : U64 = CallByName List.6 List.116; + let List.635 : Int1 = CallByName Num.22 List.117 List.639; + if List.635 then + let List.637 : Str = CallByName List.66 List.116 List.117; + inc List.637; + let List.636 : [C {}, C Str] = TagId(1) List.637; + ret List.636; else - let List.627 : {} = Struct {}; - let List.626 : [C {}, C Str] = TagId(0) List.627; - ret List.626; + let List.634 : {} = Struct {}; + let List.633 : [C {}, C Str] = TagId(0) List.634; + ret List.633; -procedure List.279 (List.280, List.281, List.277): - let List.649 : Str = CallByName Test.3 List.281; - let List.648 : List Str = CallByName List.71 List.280 List.649; - ret List.648; +procedure List.280 (List.281, List.282, List.278): + let List.656 : Str = CallByName Test.3 List.282; + let List.655 : List Str = CallByName List.71 List.281 List.656; + ret List.655; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.635 : List Str = CallByName List.68 List.278; - let List.634 : List Str = CallByName List.18 List.276 List.635 List.277; - ret List.634; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.642 : List Str = CallByName List.68 List.279; + let List.641 : List Str = CallByName List.18 List.277 List.642 List.278; + ret List.641; procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; procedure List.66 (#Attr.2, #Attr.3): - let List.631 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.631; + let List.638 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.638; procedure List.68 (#Attr.2): - let List.651 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.651; + let List.658 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.658; procedure List.71 (#Attr.2, #Attr.3): - let List.650 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.650; + let List.657 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.640 List.170 List.171 List.172 List.173 List.174: - let List.642 : Int1 = CallByName Num.22 List.173 List.174; - if List.642 then - let List.646 : Str = CallByName List.66 List.170 List.173; - inc List.646; - let List.175 : List Str = CallByName List.279 List.171 List.646 List.172; - let List.645 : U64 = 1i64; - let List.644 : U64 = CallByName Num.51 List.173 List.645; - jump List.640 List.170 List.175 List.172 List.644 List.174; +procedure List.97 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.647 List.171 List.172 List.173 List.174 List.175: + let List.649 : Int1 = CallByName Num.22 List.174 List.175; + if List.649 then + let List.653 : Str = CallByName List.66 List.171 List.174; + inc List.653; + let List.176 : List Str = CallByName List.280 List.172 List.653 List.173; + let List.652 : U64 = 1i64; + let List.651 : U64 = CallByName Num.51 List.174 List.652; + jump List.647 List.171 List.176 List.173 List.651 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.0; - jump List.640 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + inc #Derived_gen.3; + jump List.647 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 0b373c65e6..5728f7515d 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.18 (List.167, List.168, List.169): - let List.630 : U64 = 0i64; - let List.631 : U64 = CallByName List.6 List.167; - let List.629 : List U8 = CallByName List.96 List.167 List.168 List.169 List.630 List.631; - ret List.629; +procedure List.18 (List.168, List.169, List.170): + let List.637 : U64 = 0i64; + let List.638 : U64 = CallByName List.6 List.168; + let List.636 : List U8 = CallByName List.97 List.168 List.169 List.170 List.637 List.638; + ret List.636; -procedure List.279 (List.280, List.281, List.277): - let List.645 : U8 = GetTagId List.277; - joinpoint List.646 List.643: - let List.642 : List U8 = CallByName List.71 List.280 List.643; - ret List.642; +procedure List.280 (List.281, List.282, List.278): + let List.652 : U8 = GetTagId List.278; + joinpoint List.653 List.650: + let List.649 : List U8 = CallByName List.71 List.281 List.650; + ret List.649; in - switch List.645: + switch List.652: case 0: - let List.647 : U8 = CallByName Test.4 List.281 List.277; - jump List.646 List.647; + let List.654 : U8 = CallByName Test.4 List.282 List.278; + jump List.653 List.654; case 1: - let List.647 : U8 = CallByName Test.6 List.281 List.277; - jump List.646 List.647; + let List.654 : U8 = CallByName Test.6 List.282 List.278; + jump List.653 List.654; default: - let List.647 : U8 = CallByName Test.8 List.281; - jump List.646 List.647; + let List.654 : U8 = CallByName Test.8 List.282; + jump List.653 List.654; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.627 : List U8 = CallByName List.68 List.278; - let List.626 : List U8 = CallByName List.18 List.276 List.627 List.277; - ret List.626; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.634 : List U8 = CallByName List.68 List.279; + let List.633 : List U8 = CallByName List.18 List.277 List.634 List.278; + ret List.633; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.647 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.647; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; procedure List.68 (#Attr.2): - let List.648 : List U8 = lowlevel ListWithCapacity #Attr.2; - ret List.648; + let List.655 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.655; procedure List.71 (#Attr.2, #Attr.3): - let List.644 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.644; + let List.651 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.651; -procedure List.96 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.632 List.170 List.171 List.172 List.173 List.174: - let List.634 : Int1 = CallByName Num.22 List.173 List.174; - if List.634 then - let List.638 : U8 = CallByName List.66 List.170 List.173; - let List.175 : List U8 = CallByName List.279 List.171 List.638 List.172; - let List.637 : U64 = 1i64; - let List.636 : U64 = CallByName Num.51 List.173 List.637; - jump List.632 List.170 List.175 List.172 List.636 List.174; +procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.639 List.171 List.172 List.173 List.174 List.175: + let List.641 : Int1 = CallByName Num.22 List.174 List.175; + if List.641 then + let List.645 : U8 = CallByName List.66 List.171 List.174; + let List.176 : List U8 = CallByName List.280 List.172 List.645 List.173; + let List.644 : U64 = 1i64; + let List.643 : U64 = CallByName Num.51 List.174 List.644; + jump List.639 List.171 List.176 List.173 List.643 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.3; - jump List.632 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + inc #Derived_gen.0; + jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : 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 f8b2b47a24..f0c622465d 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.123, List.124, List.125): - let List.627 : {List I64, I64} = CallByName List.64 List.123 List.124 List.125; - let List.626 : List I64 = StructAtIndex 0 List.627; - ret List.626; - -procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; +procedure List.3 (List.124, List.125, List.126): + let List.634 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; + let List.633 : List I64 = StructAtIndex 0 List.634; ret List.633; -procedure List.64 (List.120, List.121, List.122): - let List.632 : U64 = CallByName List.6 List.120; - let List.629 : Int1 = CallByName Num.22 List.121 List.632; - if List.629 then - let List.630 : {List I64, I64} = CallByName List.67 List.120 List.121 List.122; - ret List.630; +procedure List.6 (#Attr.2): + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; + +procedure List.64 (List.121, List.122, List.123): + let List.639 : U64 = CallByName List.6 List.121; + let List.636 : Int1 = CallByName Num.22 List.122 List.639; + if List.636 then + let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; + ret List.637; else - let List.628 : {List I64, I64} = Struct {List.120, List.122}; - ret List.628; + let List.635 : {List I64, I64} = Struct {List.121, List.123}; + ret List.635; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.631 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.631; + let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.638; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 13bae21ff2..4b77956d58 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.628 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.628; + let List.635 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.635; -procedure List.59 (List.382): - let List.627 : {} = Struct {}; - let List.626 : List I64 = CallByName List.28 List.382 List.627; - ret List.626; +procedure List.59 (List.383): + let List.634 : {} = Struct {}; + let List.633 : List I64 = CallByName List.28 List.383 List.634; + ret List.633; procedure Num.46 (#Attr.2, #Attr.3): let Num.281 : 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 08b0ccf931..920a2c7d11 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.115, List.116): - let List.648 : U64 = CallByName List.6 List.115; - let List.645 : Int1 = CallByName Num.22 List.116 List.648; - if List.645 then - let List.647 : I64 = CallByName List.66 List.115 List.116; - let List.646 : [C {}, C I64] = TagId(1) List.647; - ret List.646; +procedure List.2 (List.116, List.117): + let List.655 : U64 = CallByName List.6 List.116; + let List.652 : Int1 = CallByName Num.22 List.117 List.655; + if List.652 then + let List.654 : I64 = CallByName List.66 List.116 List.117; + let List.653 : [C {}, C I64] = TagId(1) List.654; + ret List.653; else - let List.644 : {} = Struct {}; - let List.643 : [C {}, C I64] = TagId(0) List.644; - ret List.643; + let List.651 : {} = Struct {}; + let List.650 : [C {}, C I64] = TagId(0) List.651; + ret List.650; -procedure List.3 (List.123, List.124, List.125): - let List.635 : {List I64, I64} = CallByName List.64 List.123 List.124 List.125; - let List.634 : List I64 = StructAtIndex 0 List.635; - ret List.634; - -procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; - -procedure List.64 (List.120, List.121, List.122): - let List.632 : U64 = CallByName List.6 List.120; - let List.629 : Int1 = CallByName Num.22 List.121 List.632; - if List.629 then - let List.630 : {List I64, I64} = CallByName List.67 List.120 List.121 List.122; - ret List.630; - else - let List.628 : {List I64, I64} = Struct {List.120, List.122}; - ret List.628; - -procedure List.66 (#Attr.2, #Attr.3): - let List.641 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; +procedure List.3 (List.124, List.125, List.126): + let List.642 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; + let List.641 : List I64 = StructAtIndex 0 List.642; ret List.641; +procedure List.6 (#Attr.2): + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; + +procedure List.64 (List.121, List.122, List.123): + let List.639 : U64 = CallByName List.6 List.121; + let List.636 : Int1 = CallByName Num.22 List.122 List.639; + if List.636 then + let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; + ret List.637; + else + let List.635 : {List I64, I64} = Struct {List.121, List.123}; + ret List.635; + +procedure List.66 (#Attr.2, #Attr.3): + let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.648; + procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.631 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.631; + let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.638; 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/record_update.txt b/crates/compiler/test_mono/generated/record_update.txt index 0da5473a3f..5367024be6 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.123, List.124, List.125): - let List.635 : {List U64, U64} = CallByName List.64 List.123 List.124 List.125; - let List.634 : List U64 = StructAtIndex 0 List.635; - ret List.634; +procedure List.3 (List.124, List.125, List.126): + let List.642 : {List U64, U64} = CallByName List.64 List.124 List.125 List.126; + let List.641 : List U64 = StructAtIndex 0 List.642; + ret List.641; procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; -procedure List.64 (List.120, List.121, List.122): - let List.632 : U64 = CallByName List.6 List.120; - let List.629 : Int1 = CallByName Num.22 List.121 List.632; - if List.629 then - let List.630 : {List U64, U64} = CallByName List.67 List.120 List.121 List.122; - ret List.630; +procedure List.64 (List.121, List.122, List.123): + let List.639 : U64 = CallByName List.6 List.121; + let List.636 : Int1 = CallByName Num.22 List.122 List.639; + if List.636 then + let List.637 : {List U64, U64} = CallByName List.67 List.121 List.122 List.123; + ret List.637; else - let List.628 : {List U64, U64} = Struct {List.120, List.122}; - ret List.628; + let List.635 : {List U64, U64} = Struct {List.121, List.123}; + ret List.635; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.631 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.631; + let List.638 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.638; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 e7135242d1..de07397834 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.18 (List.167, List.168, List.169): - let List.630 : U64 = 0i64; - let List.631 : U64 = CallByName List.6 List.167; - let List.629 : List [C List *self] = CallByName List.96 List.167 List.168 List.169 List.630 List.631; - ret List.629; +procedure List.18 (List.168, List.169, List.170): + let List.637 : U64 = 0i64; + let List.638 : U64 = CallByName List.6 List.168; + let List.636 : List [C List *self] = CallByName List.97 List.168 List.169 List.170 List.637 List.638; + ret List.636; -procedure List.279 (List.280, List.281, List.277): - let List.643 : [C List *self] = CallByName Test.2 List.281; - let List.642 : List [C List *self] = CallByName List.71 List.280 List.643; - ret List.642; +procedure List.280 (List.281, List.282, List.278): + let List.650 : [C List *self] = CallByName Test.2 List.282; + let List.649 : List [C List *self] = CallByName List.71 List.281 List.650; + ret List.649; -procedure List.5 (List.276, List.277): - let List.278 : U64 = CallByName List.6 List.276; - let List.627 : List [C List *self] = CallByName List.68 List.278; - let List.626 : List [C List *self] = CallByName List.18 List.276 List.627 List.277; - ret List.626; +procedure List.5 (List.277, List.278): + let List.279 : U64 = CallByName List.6 List.277; + let List.634 : List [C List *self] = CallByName List.68 List.279; + let List.633 : List [C List *self] = CallByName List.18 List.277 List.634 List.278; + ret List.633; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.647 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.647; procedure List.66 (#Attr.2, #Attr.3): - let List.639 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.639; + let List.646 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.646; procedure List.68 (#Attr.2): - let List.645 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.645; + let List.652 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.652; procedure List.71 (#Attr.2, #Attr.3): - let List.644 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.644; + let List.651 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.651; -procedure List.96 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.632 List.170 List.171 List.172 List.173 List.174: - let List.634 : Int1 = CallByName Num.22 List.173 List.174; - if List.634 then - let List.638 : [C List *self] = CallByName List.66 List.170 List.173; - inc List.638; - let List.175 : List [C List *self] = CallByName List.279 List.171 List.638 List.172; - let List.637 : U64 = 1i64; - let List.636 : U64 = CallByName Num.51 List.173 List.637; - jump List.632 List.170 List.175 List.172 List.636 List.174; +procedure List.97 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): + joinpoint List.639 List.171 List.172 List.173 List.174 List.175: + let List.641 : Int1 = CallByName Num.22 List.174 List.175; + if List.641 then + let List.645 : [C List *self] = CallByName List.66 List.171 List.174; + inc List.645; + let List.176 : List [C List *self] = CallByName List.280 List.172 List.645 List.173; + let List.644 : U64 = 1i64; + let List.643 : U64 = CallByName Num.51 List.174 List.644; + jump List.639 List.171 List.176 List.173 List.643 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.1; - jump List.632 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + jump List.639 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 36ace0b325..60225e261b 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.115, List.116): - let List.648 : U64 = CallByName List.6 List.115; - let List.645 : Int1 = CallByName Num.22 List.116 List.648; - if List.645 then - let List.647 : I64 = CallByName List.66 List.115 List.116; - let List.646 : [C {}, C I64] = TagId(1) List.647; - ret List.646; +procedure List.2 (List.116, List.117): + let List.655 : U64 = CallByName List.6 List.116; + let List.652 : Int1 = CallByName Num.22 List.117 List.655; + if List.652 then + let List.654 : I64 = CallByName List.66 List.116 List.117; + let List.653 : [C {}, C I64] = TagId(1) List.654; + ret List.653; else - let List.644 : {} = Struct {}; - let List.643 : [C {}, C I64] = TagId(0) List.644; - ret List.643; + let List.651 : {} = Struct {}; + let List.650 : [C {}, C I64] = TagId(0) List.651; + ret List.650; -procedure List.3 (List.123, List.124, List.125): - let List.635 : {List I64, I64} = CallByName List.64 List.123 List.124 List.125; - let List.634 : List I64 = StructAtIndex 0 List.635; - ret List.634; - -procedure List.6 (#Attr.2): - let List.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; - -procedure List.64 (List.120, List.121, List.122): - let List.632 : U64 = CallByName List.6 List.120; - let List.629 : Int1 = CallByName Num.22 List.121 List.632; - if List.629 then - let List.630 : {List I64, I64} = CallByName List.67 List.120 List.121 List.122; - ret List.630; - else - let List.628 : {List I64, I64} = Struct {List.120, List.122}; - ret List.628; - -procedure List.66 (#Attr.2, #Attr.3): - let List.641 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; +procedure List.3 (List.124, List.125, List.126): + let List.642 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; + let List.641 : List I64 = StructAtIndex 0 List.642; ret List.641; +procedure List.6 (#Attr.2): + let List.640 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.640; + +procedure List.64 (List.121, List.122, List.123): + let List.639 : U64 = CallByName List.6 List.121; + let List.636 : Int1 = CallByName Num.22 List.122 List.639; + if List.636 then + let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; + ret List.637; + else + let List.635 : {List I64, I64} = Struct {List.121, List.123}; + ret List.635; + +procedure List.66 (#Attr.2, #Attr.3): + let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.648; + procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.631 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.631; + let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.638; 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/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 9a44c6ead5..b908a02885 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.13 (#Attr.2, #Attr.3): - let List.652 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.652; + let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.659; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; -procedure List.4 (List.131, List.132): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.131 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.132; - ret List.646; +procedure List.4 (List.132, List.133): + let List.655 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.132 List.655; + let List.653 : List U8 = CallByName List.71 List.654 List.133; + ret List.653; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.649; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.647; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.657; -procedure List.96 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : Str = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.66 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : Str = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.66 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.0; - jump List.629 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + inc #Derived_gen.12; + jump List.636 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; procedure Num.127 (#Attr.2): let Num.282 : 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 8b5bfb0a37..f34d7bea49 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.13 (#Attr.2, #Attr.3): - let List.652 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.652; + let List.659 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.659; procedure List.13 (#Attr.2, #Attr.3): - let List.680 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + let List.687 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.687; + +procedure List.18 (List.168, List.169, List.170): + let List.634 : U64 = 0i64; + let List.635 : U64 = CallByName List.6 List.168; + let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; + ret List.633; + +procedure List.18 (List.168, List.169, List.170): + let List.661 : U64 = 0i64; + let List.662 : U64 = CallByName List.6 List.168; + let List.660 : List U8 = CallByName List.97 List.168 List.169 List.170 List.661 List.662; + ret List.660; + +procedure List.4 (List.132, List.133): + let List.682 : U64 = 1i64; + let List.681 : List U8 = CallByName List.70 List.132 List.682; + let List.680 : List U8 = CallByName List.71 List.681 List.133; ret List.680; -procedure List.18 (List.167, List.168, List.169): - let List.627 : U64 = 0i64; - let List.628 : U64 = CallByName List.6 List.167; - let List.626 : List U8 = CallByName List.96 List.167 List.168 List.169 List.627 List.628; - ret List.626; - -procedure List.18 (List.167, List.168, List.169): - let List.654 : U64 = 0i64; - let List.655 : U64 = CallByName List.6 List.167; - let List.653 : List U8 = CallByName List.96 List.167 List.168 List.169 List.654 List.655; - ret List.653; - -procedure List.4 (List.131, List.132): - let List.675 : U64 = 1i64; - let List.674 : List U8 = CallByName List.70 List.131 List.675; - let List.673 : List U8 = CallByName List.71 List.674 List.132; - ret List.673; +procedure List.6 (#Attr.2): + let List.658 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.658; procedure List.6 (#Attr.2): - let List.651 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.651; - -procedure List.6 (#Attr.2): - let List.678 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.678; + let List.685 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.685; procedure List.66 (#Attr.2, #Attr.3): - let List.636 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.636; + let List.643 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.643; procedure List.66 (#Attr.2, #Attr.3): - let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.663; + let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.670; procedure List.70 (#Attr.2, #Attr.3): - let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.669; + let List.676 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.676; procedure List.71 (#Attr.2, #Attr.3): - let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.667; + let List.674 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.674; procedure List.8 (#Attr.2, #Attr.3): - let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.677; + let List.684 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.684; -procedure List.96 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.656 List.170 List.171 List.172 List.173 List.174: - let List.658 : Int1 = CallByName Num.22 List.173 List.174; - if List.658 then - let List.662 : Str = CallByName List.66 List.170 List.173; - inc List.662; - let List.175 : List U8 = CallByName Test.66 List.171 List.662 List.172; - let List.661 : U64 = 1i64; - let List.660 : U64 = CallByName Num.51 List.173 List.661; - jump List.656 List.170 List.175 List.172 List.660 List.174; +procedure List.97 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42): + joinpoint List.663 List.171 List.172 List.173 List.174 List.175: + let List.665 : Int1 = CallByName Num.22 List.174 List.175; + if List.665 then + let List.669 : Str = CallByName List.66 List.171 List.174; + inc List.669; + let List.176 : List U8 = CallByName Test.66 List.172 List.669 List.173; + let List.668 : U64 = 1i64; + let List.667 : U64 = CallByName Num.51 List.174 List.668; + jump List.663 List.171 List.176 List.173 List.667 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in - inc #Derived_gen.23; - jump List.656 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + inc #Derived_gen.38; + jump List.663 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42; -procedure List.96 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50): - joinpoint List.629 List.170 List.171 List.172 List.173 List.174: - let List.631 : Int1 = CallByName Num.22 List.173 List.174; - if List.631 then - let List.635 : [C {}, C {}, C Str] = CallByName List.66 List.170 List.173; - inc List.635; - let List.175 : List U8 = CallByName Test.66 List.171 List.635 List.172; - let List.634 : U64 = 1i64; - let List.633 : U64 = CallByName Num.51 List.173 List.634; - jump List.629 List.170 List.175 List.172 List.633 List.174; +procedure List.97 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50): + joinpoint List.636 List.171 List.172 List.173 List.174 List.175: + let List.638 : Int1 = CallByName Num.22 List.174 List.175; + if List.638 then + let List.642 : [C {}, C {}, C Str] = CallByName List.66 List.171 List.174; + inc List.642; + let List.176 : List U8 = CallByName Test.66 List.172 List.642 List.173; + let List.641 : U64 = 1i64; + let List.640 : U64 = CallByName Num.51 List.174 List.641; + jump List.636 List.171 List.176 List.173 List.640 List.175; else - dec List.170; - ret List.171; + dec List.171; + ret List.172; in inc #Derived_gen.46; - jump List.629 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50; + jump List.636 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50; procedure Num.127 (#Attr.2): let Num.286 : 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 ffefb6edcc..6d648d9fc7 100644 --- a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt +++ b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.111 (List.540, List.541, List.542): - let List.644 : U64 = 0i64; - let List.645 : U64 = CallByName List.6 List.540; - let List.643 : [C U64, C U64] = CallByName List.80 List.540 List.541 List.542 List.644 List.645; - ret List.643; +procedure List.112 (List.547, List.548, List.549): + let List.651 : U64 = 0i64; + let List.652 : U64 = CallByName List.6 List.547; + let List.650 : [C U64, C U64] = CallByName List.80 List.547 List.548 List.549 List.651 List.652; + ret List.650; -procedure List.26 (List.208, List.209, List.210): - let List.637 : [C U64, C U64] = CallByName List.111 List.208 List.209 List.210; - let List.640 : U8 = 1i64; - let List.641 : U8 = GetTagId List.637; - let List.642 : Int1 = lowlevel Eq List.640 List.641; - if List.642 then - let List.211 : U64 = UnionAtIndex (Id 1) (Index 0) List.637; - ret List.211; - else - let List.212 : U64 = UnionAtIndex (Id 0) (Index 0) List.637; +procedure List.26 (List.209, List.210, List.211): + let List.644 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; + let List.647 : U8 = 1i64; + let List.648 : U8 = GetTagId List.644; + let List.649 : Int1 = lowlevel Eq List.647 List.648; + if List.649 then + let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.644; ret List.212; + else + let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.644; + ret List.213; -procedure List.38 (List.396, List.397): - let List.636 : U64 = CallByName List.6 List.396; - let List.398 : U64 = CallByName Num.77 List.636 List.397; - let List.626 : List U8 = CallByName List.43 List.396 List.398; - ret List.626; +procedure List.38 (List.397, List.398): + let List.643 : U64 = CallByName List.6 List.397; + let List.399 : U64 = CallByName Num.77 List.643 List.398; + let List.633 : List U8 = CallByName List.43 List.397 List.399; + ret List.633; -procedure List.43 (List.394, List.395): - let List.634 : U64 = CallByName List.6 List.394; - let List.633 : U64 = CallByName Num.77 List.634 List.395; - let List.628 : {U64, U64} = Struct {List.395, List.633}; - let List.627 : List U8 = CallByName List.49 List.394 List.628; - ret List.627; +procedure List.43 (List.395, List.396): + let List.641 : U64 = CallByName List.6 List.395; + let List.640 : U64 = CallByName Num.77 List.641 List.396; + let List.635 : {U64, U64} = Struct {List.396, List.640}; + let List.634 : List U8 = CallByName List.49 List.395 List.635; + ret List.634; -procedure List.49 (List.472, List.473): - let List.630 : U64 = StructAtIndex 1 List.473; - let List.631 : U64 = StructAtIndex 0 List.473; - let List.629 : List U8 = CallByName List.72 List.472 List.630 List.631; - ret List.629; +procedure List.49 (List.473, List.474): + let List.637 : U64 = StructAtIndex 1 List.474; + let List.638 : U64 = StructAtIndex 0 List.474; + let List.636 : List U8 = CallByName List.72 List.473 List.637 List.638; + ret List.636; procedure List.6 (#Attr.2): - let List.635 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.635; + let List.642 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.642; procedure List.66 (#Attr.2, #Attr.3): - let List.658 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.658; + let List.665 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.665; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.632 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.632; + let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.639; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.646 List.543 List.544 List.545 List.546 List.547: - let List.648 : Int1 = CallByName Num.22 List.546 List.547; - if List.648 then - let List.657 : U8 = CallByName List.66 List.543 List.546; - let List.649 : [C U64, C U64] = CallByName Test.3 List.544 List.657; - let List.654 : U8 = 1i64; - let List.655 : U8 = GetTagId List.649; - let List.656 : Int1 = lowlevel Eq List.654 List.655; - if List.656 then - let List.548 : U64 = UnionAtIndex (Id 1) (Index 0) List.649; - let List.652 : U64 = 1i64; - let List.651 : U64 = CallByName Num.51 List.546 List.652; - jump List.646 List.543 List.548 List.545 List.651 List.547; + joinpoint List.653 List.550 List.551 List.552 List.553 List.554: + let List.655 : Int1 = CallByName Num.22 List.553 List.554; + if List.655 then + let List.664 : U8 = CallByName List.66 List.550 List.553; + let List.656 : [C U64, C U64] = CallByName Test.3 List.551 List.664; + let List.661 : U8 = 1i64; + let List.662 : U8 = GetTagId List.656; + let List.663 : Int1 = lowlevel Eq List.661 List.662; + if List.663 then + let List.555 : U64 = UnionAtIndex (Id 1) (Index 0) List.656; + let List.659 : U64 = 1i64; + let List.658 : U64 = CallByName Num.51 List.553 List.659; + jump List.653 List.550 List.555 List.552 List.658 List.554; else - dec List.543; - let List.549 : U64 = UnionAtIndex (Id 0) (Index 0) List.649; - let List.653 : [C U64, C U64] = TagId(0) List.549; - ret List.653; + dec List.550; + let List.556 : U64 = UnionAtIndex (Id 0) (Index 0) List.656; + let List.660 : [C U64, C U64] = TagId(0) List.556; + ret List.660; else - dec List.543; - let List.647 : [C U64, C U64] = TagId(1) List.544; - ret List.647; + dec List.550; + let List.654 : [C U64, C U64] = TagId(1) List.551; + ret List.654; in inc #Derived_gen.0; - jump List.646 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.653 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/test_utils/src/TagLenEncoderFmt.roc b/crates/test_utils/src/TagLenEncoderFmt.roc index a86595fa1d..75f2fb39dd 100644 --- a/crates/test_utils/src/TagLenEncoderFmt.roc +++ b/crates/test_utils/src/TagLenEncoderFmt.roc @@ -136,7 +136,7 @@ splitAtSpace = \bytes -> Err _ -> { taken: [], rest: bytes } decodeNumPre = \bytes, pre, toNum -> - when List.split bytes 1 is + when List.splitAt bytes 1 is { before: [b], others } if b == pre -> { taken, rest } = splitAtSpace others str = taken |> Str.fromUtf8 |> Result.mapErr \_ -> TooShort @@ -186,9 +186,9 @@ decodeTry = \{ result, rest }, map -> decodeString = Decode.custom \bytes, @TagLenFmt {} -> decodeLenPre bytes 's' |> decodeTry \len, lenRest -> - { before, others } = List.split lenRest len + { before, others } = List.splitAt lenRest len result = Str.fromUtf8 before |> Result.mapErr \_ -> TooShort - when List.split others 1 is + when List.splitAt others 1 is { before: [' '], others: rest } -> { result, rest } _ -> { result: Err TooShort, rest: others } @@ -258,4 +258,3 @@ expect encoded = Encode.toBytes input tagLenFmt decoded = Decode.fromBytes encoded tagLenFmt decoded == Ok input - diff --git a/examples/virtual-dom-wip/platform/Json.roc b/examples/virtual-dom-wip/platform/Json.roc index 1b1c456694..c299c7dfa1 100644 --- a/examples/virtual-dom-wip/platform/Json.roc +++ b/examples/virtual-dom-wip/platform/Json.roc @@ -163,7 +163,7 @@ encodeStrBytes = \str -> FoundEscape -> { before: bytesBeforeEscape, others: bytesWithEscapes } = - List.split bytes firstPassState.bytePos + List.splitAt bytes firstPassState.bytePos # Reserve List with 120% capacity for escaped bytes to reduce # allocations, include starting quote, and bytes up to first escape @@ -584,7 +584,7 @@ parseExactChar = \bytes, char -> if c == char then - { result: Ok {}, rest: (List.split bytes 1).others } + { result: Ok {}, rest: (List.splitAt bytes 1).others } else { result: Err TooShort, rest: bytes } From 0a7e98ab65cd4efe1e793f49b5dd5ec1f950a9cb Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Sun, 10 Nov 2024 18:20:31 -0600 Subject: [PATCH 02/14] add List.splitOn --- crates/compiler/builtins/roc/List.roc | 12 +++++ crates/compiler/module/src/symbol.rs | 1 + crates/compiler/test_gen/src/gen_list.rs | 62 ++++++++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 14f26cfc92..dde243237c 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -57,6 +57,7 @@ module [ intersperse, split, splitAt, + splitOn, splitFirst, splitLast, startsWith, @@ -1257,6 +1258,17 @@ splitAt = \elements, userSplitIndex -> { before, others } +splitOn: List a, a -> List (List a) where a implements Eq +splitOn = \elements, delimiter -> + help = \remaining, chunks, currentChunk -> + when remaining is + [] -> List.append chunks currentChunk + [x, .. as rest] if x == delimiter -> + help rest (List.append chunks currentChunk) [] + [x, .. as rest] -> + help rest chunks (List.append currentChunk x) + help elements [] [] + ## DEPRECATED: will be removed soon split : List elem, U64 -> { before : List elem, others : List elem } split = \elements, userSplitIndex -> diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index e0848ba1b7..c61286f599 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1511,6 +1511,7 @@ define_builtins! { 89 LIST_CONCAT_UTF8: "concatUtf8" 90 LIST_WALK_FX: "walk!" 91 LIST_SPLIT_AT: "splitAt" + 92 LIST_SPLIT_ON: "splitOn" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias diff --git a/crates/compiler/test_gen/src/gen_list.rs b/crates/compiler/test_gen/src/gen_list.rs index dbc3ee3cec..b8ed64ba1e 100644 --- a/crates/compiler/test_gen/src/gen_list.rs +++ b/crates/compiler/test_gen/src/gen_list.rs @@ -421,6 +421,68 @@ fn list_split_at() { ); } +#[test] +#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] +fn list_split_on() { + assert_evals_to!( + r" + List.splitOn [] 1 + ", + RocList::>::from_slice(&[RocList::::from_slice(&[])]), + RocList> + ); + assert_evals_to!( + r" + List.splitOn [1] 1 + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[]), + RocList::::from_slice(&[]), + ]), + RocList> + ); + assert_evals_to!( + r" + List.splitOn [1, 2, 3] 47 + ", + RocList::>::from_slice(&[RocList::::from_slice(&[1, 2, 3])]), + RocList> + ); + assert_evals_to!( + r" + List.splitOn [1, 2, 3, 4, 5] 3 + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[1, 2]), + RocList::::from_slice(&[4, 5]), + ]), + RocList> + ); + assert_evals_to!( + r" + List.splitOn [1, 0, 1, 0, 1] 1 + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[]), + RocList::::from_slice(&[0]), + RocList::::from_slice(&[0]), + RocList::::from_slice(&[]), + ]), + RocList> + ); + assert_evals_to!( + r" + List.splitOn [1, 0, 1, 0, 1] 0 + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[1]), + RocList::::from_slice(&[1]), + RocList::::from_slice(&[1]), + ]), + RocList> + ); +} + #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] fn list_split_first() { From ec59acea893dbdce9e0077094cb55f3832eededa Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Sun, 10 Nov 2024 18:34:34 -0600 Subject: [PATCH 03/14] add List.splitOnList --- crates/compiler/builtins/roc/List.roc | 20 +++++++- crates/compiler/module/src/symbol.rs | 1 + crates/compiler/test_gen/src/gen_list.rs | 65 ++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 1 deletion(-) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index dde243237c..2668259187 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -58,6 +58,7 @@ module [ split, splitAt, splitOn, + splitOnList, splitFirst, splitLast, startsWith, @@ -1258,17 +1259,34 @@ splitAt = \elements, userSplitIndex -> { before, others } -splitOn: List a, a -> List (List a) where a implements Eq +splitOn : List a, a -> List (List a) where a implements Eq splitOn = \elements, delimiter -> help = \remaining, chunks, currentChunk -> when remaining is [] -> List.append chunks currentChunk [x, .. as rest] if x == delimiter -> help rest (List.append chunks currentChunk) [] + [x, .. as rest] -> help rest chunks (List.append currentChunk x) help elements [] [] +splitOnList : List a, List a -> List (List a) where a implements Eq +splitOnList = \elements, delimiter -> + if delimiter == [] then + [elements] + else + + help = \remaining, chunks, currentChunk -> + when remaining is + [] -> List.append chunks currentChunk + [x, .. as rest] -> + if List.startsWith remaining delimiter then + help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) [] + else + help rest chunks (List.append currentChunk x) + help elements [] [] + ## DEPRECATED: will be removed soon split : List elem, U64 -> { before : List elem, others : List elem } split = \elements, userSplitIndex -> diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index c61286f599..312b6f9c41 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1512,6 +1512,7 @@ define_builtins! { 90 LIST_WALK_FX: "walk!" 91 LIST_SPLIT_AT: "splitAt" 92 LIST_SPLIT_ON: "splitOn" + 93 LIST_SPLIT_ON_LIST: "splitOnList" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias diff --git a/crates/compiler/test_gen/src/gen_list.rs b/crates/compiler/test_gen/src/gen_list.rs index b8ed64ba1e..b57e9c5c64 100644 --- a/crates/compiler/test_gen/src/gen_list.rs +++ b/crates/compiler/test_gen/src/gen_list.rs @@ -483,6 +483,71 @@ fn list_split_on() { ); } +#[test] +#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] +fn list_split_on_list() { + assert_evals_to!( + r" + List.splitOnList [] [] + ", + RocList::>::from_slice(&[RocList::::from_slice(&[])]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [] [1, 2, 3] + ", + RocList::>::from_slice(&[RocList::::from_slice(&[]),]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [1, 2, 3] [] + ", + RocList::>::from_slice(&[RocList::::from_slice(&[1, 2, 3]),]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [1] [1] + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[]), + RocList::::from_slice(&[]), + ]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [1, 2, 3] [47] + ", + RocList::>::from_slice(&[RocList::::from_slice(&[1, 2, 3])]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [1, 2, 3, 4, 5] [2, 3] + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[1]), + RocList::::from_slice(&[4, 5]), + ]), + RocList> + ); + assert_evals_to!( + r" + List.splitOnList [1, 0, 1, 0, 1] [1] + ", + RocList::>::from_slice(&[ + RocList::::from_slice(&[]), + RocList::::from_slice(&[0]), + RocList::::from_slice(&[0]), + RocList::::from_slice(&[]), + ]), + RocList> + ); +} + #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] fn list_split_first() { From 75ebcbe9529a6cb31177f519d68a26671993bc21 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Sun, 10 Nov 2024 18:39:29 -0600 Subject: [PATCH 04/14] add docs --- crates/compiler/builtins/roc/List.roc | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 2668259187..0f201884cd 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -1259,6 +1259,11 @@ splitAt = \elements, userSplitIndex -> { before, others } +## Splits the input list on the delimiter element. +## +## ```roc +## List.splitOn [1, 2, 3] 2 == [[1], [2]] +## ``` splitOn : List a, a -> List (List a) where a implements Eq splitOn = \elements, delimiter -> help = \remaining, chunks, currentChunk -> @@ -1271,6 +1276,11 @@ splitOn = \elements, delimiter -> help rest chunks (List.append currentChunk x) help elements [] [] +## Splits the input list on the delimiter list. +## +## ```roc +## List.splitOnList [1, 2, 3] [1, 2] == [[], [3]] +## ``` splitOnList : List a, List a -> List (List a) where a implements Eq splitOnList = \elements, delimiter -> if delimiter == [] then @@ -1280,11 +1290,10 @@ splitOnList = \elements, delimiter -> help = \remaining, chunks, currentChunk -> when remaining is [] -> List.append chunks currentChunk - [x, .. as rest] -> - if List.startsWith remaining delimiter then - help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) [] - else - help rest chunks (List.append currentChunk x) + _ if List.startsWith remaining delimiter -> + help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) [] + + [x, .. as rest] -> help rest chunks (List.append currentChunk x) help elements [] [] ## DEPRECATED: will be removed soon From f9ff551de138f99052e167f56129b42ba097534b Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Sun, 10 Nov 2024 18:51:02 -0600 Subject: [PATCH 05/14] update tests --- ...e_in_polymorphic_expression_issue_4717.txt | 116 +++---- .../generated/call_function_in_empty_list.txt | 68 ++-- .../call_function_in_empty_list_unbound.txt | 68 ++-- .../generated/capture_void_layout_task.txt | 42 +-- ...ose_correct_recursion_var_under_record.txt | 142 ++++----- .../test_mono/generated/closure_in_list.txt | 4 +- ...lambda_set_productive_nullable_wrapped.txt | 48 +-- crates/compiler/test_mono/generated/dict.txt | 4 +- .../generated/empty_list_of_function_type.txt | 28 +- .../compiler/test_mono/generated/encode.txt | 18 +- .../encode_derived_nested_record_string.txt | 116 +++---- ...encode_derived_record_one_field_string.txt | 68 ++-- ...ncode_derived_record_two_field_strings.txt | 68 ++-- .../generated/encode_derived_string.txt | 22 +- .../encode_derived_tag_one_field_string.txt | 72 ++--- ...encode_derived_tag_two_payloads_string.txt | 70 ++--- .../generated/inspect_derived_dict.txt | 296 +++++++++--------- .../generated/inspect_derived_list.txt | 44 +-- .../inspect_derived_nested_record_string.txt | 90 +++--- .../generated/inspect_derived_record.txt | 46 +-- ...nspect_derived_record_one_field_string.txt | 46 +-- ...spect_derived_record_two_field_strings.txt | 46 +-- .../inspect_derived_tag_one_field_string.txt | 58 ++-- ...nspect_derived_tag_two_payloads_string.txt | 58 ++-- .../test_mono/generated/ir_int_add.txt | 4 +- ...cialize_errors_behind_unified_branches.txt | 54 ++-- .../test_mono/generated/issue_4770.txt | 184 +++++------ ...ure_with_multiple_recursive_structures.txt | 44 +-- .../test_mono/generated/list_append.txt | 18 +- .../generated/list_append_closure.txt | 18 +- .../generated/list_cannot_update_inplace.txt | 32 +- .../compiler/test_mono/generated/list_get.txt | 28 +- .../compiler/test_mono/generated/list_len.txt | 8 +- .../generated/list_map_closure_borrows.txt | 100 +++--- .../generated/list_map_closure_owns.txt | 96 +++--- ...ist_map_take_capturing_or_noncapturing.txt | 86 ++--- .../generated/list_pass_to_function.txt | 32 +- .../test_mono/generated/list_sort_asc.txt | 12 +- .../test_mono/generated/quicksort_swap.txt | 56 ++-- .../test_mono/generated/record_update.txt | 32 +- ...function_and_union_with_inference_hole.txt | 72 ++--- .../compiler/test_mono/generated/rigids.txt | 56 ++-- ...not_duplicate_identical_concrete_types.txt | 72 ++--- ...types_without_unification_of_unifiable.txt | 124 ++++---- .../weakening_avoids_overspecialization.txt | 116 +++---- 45 files changed, 1441 insertions(+), 1441 deletions(-) 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 adf3ce4539..dcc768880f 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 @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.112 (List.547, List.548, List.549): - let List.651 : U64 = 0i64; - let List.652 : U64 = CallByName List.6 List.547; - let List.650 : [C U64, C U64] = CallByName List.80 List.547 List.548 List.549 List.651 List.652; - ret List.650; +procedure List.114 (List.567, List.568, List.569): + let List.671 : U64 = 0i64; + let List.672 : U64 = CallByName List.6 List.567; + let List.670 : [C U64, C U64] = CallByName List.80 List.567 List.568 List.569 List.671 List.672; + ret List.670; -procedure List.26 (List.209, List.210, List.211): - let List.644 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; - let List.647 : U8 = 1i64; - let List.648 : U8 = GetTagId List.644; - let List.649 : Int1 = lowlevel Eq List.647 List.648; - if List.649 then - let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.644; - ret List.212; +procedure List.26 (List.211, List.212, List.213): + let List.664 : [C U64, C U64] = CallByName List.114 List.211 List.212 List.213; + let List.667 : U8 = 1i64; + let List.668 : U8 = GetTagId List.664; + let List.669 : Int1 = lowlevel Eq List.667 List.668; + if List.669 then + let List.214 : U64 = UnionAtIndex (Id 1) (Index 0) List.664; + ret List.214; else - let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.644; - ret List.213; + let List.215 : U64 = UnionAtIndex (Id 0) (Index 0) List.664; + ret List.215; -procedure List.38 (List.397, List.398): - let List.643 : U64 = CallByName List.6 List.397; - let List.399 : U64 = CallByName Num.77 List.643 List.398; - let List.633 : List U8 = CallByName List.43 List.397 List.399; - ret List.633; +procedure List.38 (List.399, List.400): + let List.663 : U64 = CallByName List.6 List.399; + let List.401 : U64 = CallByName Num.77 List.663 List.400; + let List.653 : List U8 = CallByName List.43 List.399 List.401; + ret List.653; -procedure List.43 (List.395, List.396): - let List.641 : U64 = CallByName List.6 List.395; - let List.640 : U64 = CallByName Num.77 List.641 List.396; - let List.635 : {U64, U64} = Struct {List.396, List.640}; - let List.634 : List U8 = CallByName List.49 List.395 List.635; - ret List.634; +procedure List.43 (List.397, List.398): + let List.661 : U64 = CallByName List.6 List.397; + let List.660 : U64 = CallByName Num.77 List.661 List.398; + let List.655 : {U64, U64} = Struct {List.398, List.660}; + let List.654 : List U8 = CallByName List.49 List.397 List.655; + ret List.654; -procedure List.49 (List.473, List.474): - let List.637 : U64 = StructAtIndex 1 List.474; - let List.638 : U64 = StructAtIndex 0 List.474; - let List.636 : List U8 = CallByName List.72 List.473 List.637 List.638; - ret List.636; +procedure List.49 (List.475, List.476): + let List.657 : U64 = StructAtIndex 1 List.476; + let List.658 : U64 = StructAtIndex 0 List.476; + let List.656 : List U8 = CallByName List.72 List.475 List.657 List.658; + ret List.656; procedure List.6 (#Attr.2): - let List.642 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.642; + let List.662 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.662; procedure List.66 (#Attr.2, #Attr.3): - let List.665 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.665; + let List.685 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.685; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.639; + let List.659 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.659; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.653 List.550 List.551 List.552 List.553 List.554: - let List.655 : Int1 = CallByName Num.22 List.553 List.554; - if List.655 then - let List.664 : U8 = CallByName List.66 List.550 List.553; - let List.656 : [C U64, C U64] = CallByName Test.4 List.551 List.664; - let List.661 : U8 = 1i64; - let List.662 : U8 = GetTagId List.656; - let List.663 : Int1 = lowlevel Eq List.661 List.662; - if List.663 then - let List.555 : U64 = UnionAtIndex (Id 1) (Index 0) List.656; - let List.659 : U64 = 1i64; - let List.658 : U64 = CallByName Num.51 List.553 List.659; - jump List.653 List.550 List.555 List.552 List.658 List.554; + joinpoint List.673 List.570 List.571 List.572 List.573 List.574: + let List.675 : Int1 = CallByName Num.22 List.573 List.574; + if List.675 then + let List.684 : U8 = CallByName List.66 List.570 List.573; + let List.676 : [C U64, C U64] = CallByName Test.4 List.571 List.684; + let List.681 : U8 = 1i64; + let List.682 : U8 = GetTagId List.676; + let List.683 : Int1 = lowlevel Eq List.681 List.682; + if List.683 then + let List.575 : U64 = UnionAtIndex (Id 1) (Index 0) List.676; + let List.679 : U64 = 1i64; + let List.678 : U64 = CallByName Num.51 List.573 List.679; + jump List.673 List.570 List.575 List.572 List.678 List.574; else - dec List.550; - let List.556 : U64 = UnionAtIndex (Id 0) (Index 0) List.656; - let List.660 : [C U64, C U64] = TagId(0) List.556; - ret List.660; + dec List.570; + let List.576 : U64 = UnionAtIndex (Id 0) (Index 0) List.676; + let List.680 : [C U64, C U64] = TagId(0) List.576; + ret List.680; else - dec List.550; - let List.654 : [C U64, C U64] = TagId(1) List.551; - ret List.654; + dec List.570; + let List.674 : [C U64, C U64] = TagId(1) List.571; + ret List.674; in inc #Derived_gen.0; - jump List.653 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; 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.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt index b241e25b00..1cbfc9bfa7 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.18 (List.168, List.169, List.170): - let List.637 : U64 = 0i64; - let List.638 : U64 = CallByName List.6 List.168; - let List.636 : List {} = CallByName List.97 List.168 List.169 List.170 List.637 List.638; - ret List.636; +procedure List.18 (List.170, List.171, List.172): + let List.657 : U64 = 0i64; + let List.658 : U64 = CallByName List.6 List.170; + let List.656 : List {} = CallByName List.99 List.170 List.171 List.172 List.657 List.658; + ret List.656; -procedure List.280 (List.281, List.282, List.278): - let List.650 : {} = CallByName Test.2 List.282; - let List.649 : List {} = CallByName List.71 List.281 List.650; - ret List.649; +procedure List.282 (List.283, List.284, List.280): + let List.670 : {} = CallByName Test.2 List.284; + let List.669 : List {} = CallByName List.71 List.283 List.670; + ret List.669; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.634 : List {} = CallByName List.68 List.279; - let List.633 : List {} = CallByName List.18 List.277 List.634 List.278; - ret List.633; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.654 : List {} = CallByName List.68 List.281; + let List.653 : List {} = CallByName List.18 List.279 List.654 List.280; + ret List.653; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.646 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; + let List.666 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; procedure List.68 (#Attr.2): - let List.652 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.652; + let List.672 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.672; procedure List.71 (#Attr.2, #Attr.3): - let List.651 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.651; + let List.671 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.671; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.639 List.171 List.172 List.173 List.174 List.175: - let List.641 : Int1 = CallByName Num.22 List.174 List.175; - if List.641 then - let List.645 : [] = CallByName List.66 List.171 List.174; - let List.176 : List {} = CallByName List.280 List.172 List.645 List.173; - let List.644 : U64 = 1i64; - let List.643 : U64 = CallByName Num.51 List.174 List.644; - jump List.639 List.171 List.176 List.173 List.643 List.175; +procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.659 List.173 List.174 List.175 List.176 List.177: + let List.661 : Int1 = CallByName Num.22 List.176 List.177; + if List.661 then + let List.665 : [] = CallByName List.66 List.173 List.176; + let List.178 : List {} = CallByName List.282 List.174 List.665 List.175; + let List.664 : U64 = 1i64; + let List.663 : U64 = CallByName Num.51 List.176 List.664; + jump List.659 List.173 List.178 List.175 List.663 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.0; - jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.659 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 d991906b11..3c896d8b91 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.18 (List.168, List.169, List.170): - let List.637 : U64 = 0i64; - let List.638 : U64 = CallByName List.6 List.168; - let List.636 : List [] = CallByName List.97 List.168 List.169 List.170 List.637 List.638; - ret List.636; +procedure List.18 (List.170, List.171, List.172): + let List.657 : U64 = 0i64; + let List.658 : U64 = CallByName List.6 List.170; + let List.656 : List [] = CallByName List.99 List.170 List.171 List.172 List.657 List.658; + ret List.656; -procedure List.280 (List.281, List.282, List.278): - let List.650 : [] = CallByName Test.2 List.282; - let List.649 : List [] = CallByName List.71 List.281 List.650; - ret List.649; +procedure List.282 (List.283, List.284, List.280): + let List.670 : [] = CallByName Test.2 List.284; + let List.669 : List [] = CallByName List.71 List.283 List.670; + ret List.669; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.634 : List [] = CallByName List.68 List.279; - let List.633 : List [] = CallByName List.18 List.277 List.634 List.278; - ret List.633; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.654 : List [] = CallByName List.68 List.281; + let List.653 : List [] = CallByName List.18 List.279 List.654 List.280; + ret List.653; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.646 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; + let List.666 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; procedure List.68 (#Attr.2): - let List.652 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.652; + let List.672 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.672; procedure List.71 (#Attr.2, #Attr.3): - let List.651 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.651; + let List.671 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.671; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.639 List.171 List.172 List.173 List.174 List.175: - let List.641 : Int1 = CallByName Num.22 List.174 List.175; - if List.641 then - let List.645 : [] = CallByName List.66 List.171 List.174; - let List.176 : List [] = CallByName List.280 List.172 List.645 List.173; - let List.644 : U64 = 1i64; - let List.643 : U64 = CallByName Num.51 List.174 List.644; - jump List.639 List.171 List.176 List.173 List.643 List.175; +procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.659 List.173 List.174 List.175 List.176 List.177: + let List.661 : Int1 = CallByName Num.22 List.176 List.177; + if List.661 then + let List.665 : [] = CallByName List.66 List.173 List.176; + let List.178 : List [] = CallByName List.282 List.174 List.665 List.175; + let List.664 : U64 = 1i64; + let List.663 : U64 = CallByName Num.51 List.176 List.664; + jump List.659 List.173 List.178 List.175 List.663 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.0; - jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.659 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 8c2b3dc3bc..c6a779f97d 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.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : [C {}, C *self {{}, []}] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : [C {}, C *self {{}, []}] = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : [] = CallByName List.66 List.171 List.174; - let List.176 : [C {}, C *self {{}, []}] = CallByName Test.29 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : [] = CallByName List.66 List.173 List.176; + let List.178 : [C {}, C *self {{}, []}] = CallByName Test.29 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.13; - jump List.636 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.656 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 af41e0c6bd..68a4792314 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 @@ -2,92 +2,92 @@ procedure Bool.1 (): let Bool.24 : Int1 = false; ret Bool.24; -procedure List.18 (List.168, List.169, List.170): - let List.653 : U64 = 0i64; - let List.654 : U64 = CallByName List.6 List.168; - let List.652 : List Str = CallByName List.97 List.168 List.169 List.170 List.653 List.654; - ret List.652; +procedure List.18 (List.170, List.171, List.172): + let List.673 : U64 = 0i64; + let List.674 : U64 = CallByName List.6 List.170; + let List.672 : List Str = CallByName List.99 List.170 List.171 List.172 List.673 List.674; + ret List.672; -procedure List.2 (List.116, List.117): - let List.647 : U64 = CallByName List.6 List.116; - let List.643 : Int1 = CallByName Num.22 List.117 List.647; - if List.643 then - let List.645 : Str = CallByName List.66 List.116 List.117; - inc List.645; - let List.644 : [C {}, C Str] = TagId(1) List.645; - ret List.644; +procedure List.2 (List.118, List.119): + let List.667 : U64 = CallByName List.6 List.118; + let List.663 : Int1 = CallByName Num.22 List.119 List.667; + if List.663 then + let List.665 : Str = CallByName List.66 List.118 List.119; + inc List.665; + let List.664 : [C {}, C Str] = TagId(1) List.665; + ret List.664; else - let List.642 : {} = Struct {}; - let List.641 : [C {}, C Str] = TagId(0) List.642; - ret List.641; + let List.662 : {} = Struct {}; + let List.661 : [C {}, C Str] = TagId(0) List.662; + ret List.661; -procedure List.280 (List.281, List.282, List.278): - let List.666 : Str = CallByName Test.10 List.282; - let List.665 : List Str = CallByName List.71 List.281 List.666; - ret List.665; +procedure List.282 (List.283, List.284, List.280): + let List.686 : Str = CallByName Test.10 List.284; + let List.685 : List Str = CallByName List.71 List.283 List.686; + ret List.685; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.650 : List Str = CallByName List.68 List.279; - let List.649 : List Str = CallByName List.18 List.277 List.650 List.278; - ret List.649; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.670 : List Str = CallByName List.68 List.281; + let List.669 : List Str = CallByName List.18 List.279 List.670 List.280; + ret List.669; procedure List.6 (#Attr.2): - let List.648 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.648; - -procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; - -procedure List.66 (#Attr.2, #Attr.3): - let List.646 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; - -procedure List.66 (#Attr.2, #Attr.3): - let List.662 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.662; - -procedure List.68 (#Attr.2): - let List.668 : List Str = lowlevel ListWithCapacity #Attr.2; + let List.668 : U64 = lowlevel ListLenU64 #Attr.2; ret List.668; +procedure List.6 (#Attr.2): + let List.683 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.683; + +procedure List.66 (#Attr.2, #Attr.3): + let List.666 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; + +procedure List.66 (#Attr.2, #Attr.3): + let List.682 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.682; + +procedure List.68 (#Attr.2): + let List.688 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.688; + procedure List.71 (#Attr.2, #Attr.3): - let List.667 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.667; + let List.687 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.687; -procedure List.9 (List.388): - let List.640 : U64 = 0i64; - let List.633 : [C {}, C Str] = CallByName List.2 List.388 List.640; - let List.637 : U8 = 1i64; - let List.638 : U8 = GetTagId List.633; - let List.639 : Int1 = lowlevel Eq List.637 List.638; - if List.639 then - let List.389 : Str = UnionAtIndex (Id 1) (Index 0) List.633; - let List.634 : [C {}, C Str] = TagId(1) List.389; - ret List.634; +procedure List.9 (List.390): + let List.660 : U64 = 0i64; + let List.653 : [C {}, C Str] = CallByName List.2 List.390 List.660; + let List.657 : U8 = 1i64; + let List.658 : U8 = GetTagId List.653; + let List.659 : Int1 = lowlevel Eq List.657 List.658; + if List.659 then + let List.391 : Str = UnionAtIndex (Id 1) (Index 0) List.653; + let List.654 : [C {}, C Str] = TagId(1) List.391; + ret List.654; else - dec List.633; - let List.636 : {} = Struct {}; - let List.635 : [C {}, C Str] = TagId(0) List.636; - ret List.635; + dec List.653; + let List.656 : {} = Struct {}; + let List.655 : [C {}, C Str] = TagId(0) List.656; + ret List.655; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.655 List.171 List.172 List.173 List.174 List.175: - let List.657 : Int1 = CallByName Num.22 List.174 List.175; - if List.657 then - let List.661 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.171 List.174; - inc List.661; - let List.176 : List Str = CallByName List.280 List.172 List.661 List.173; - let List.660 : U64 = 1i64; - let List.659 : U64 = CallByName Num.51 List.174 List.660; - jump List.655 List.171 List.176 List.173 List.659 List.175; +procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.675 List.173 List.174 List.175 List.176 List.177: + let List.677 : Int1 = CallByName Num.22 List.176 List.177; + if List.677 then + let List.681 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.173 List.176; + inc List.681; + let List.178 : List Str = CallByName List.282 List.174 List.681 List.175; + let List.680 : U64 = 1i64; + let List.679 : U64 = CallByName Num.51 List.176 List.680; + jump List.675 List.173 List.178 List.175 List.679 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.0; - jump List.655 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.675 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 1ba706987a..c97187b20c 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.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.653 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.653; 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 7be7bf12f3..6f734fc09c 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 @@ -2,35 +2,35 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : [, C *self Int1, C *self Int1] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : [, C *self Int1, C *self Int1] = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Int1 = CallByName List.66 List.171 List.174; - let List.176 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Int1 = CallByName List.66 List.173 List.176; + let List.178 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.7; - jump List.636 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + inc #Derived_gen.3; + jump List.656 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; @@ -47,7 +47,7 @@ procedure Str.3 (#Attr.2, #Attr.3): procedure Test.1 (Test.5): ret Test.5; -procedure Test.11 (#Derived_gen.3, #Derived_gen.4): +procedure Test.11 (#Derived_gen.8, #Derived_gen.9): joinpoint Test.27 Test.12 #Attr.12: let Test.34 : Int1 = UnionAtIndex (Id 2) (Index 1) #Attr.12; let Test.33 : [, C *self Int1, C *self Int1] = UnionAtIndex (Id 2) (Index 0) #Attr.12; @@ -87,7 +87,7 @@ procedure Test.11 (#Derived_gen.3, #Derived_gen.4): decref #Attr.12; jump #Derived_gen.12; in - jump Test.27 #Derived_gen.3 #Derived_gen.4; + jump Test.27 #Derived_gen.8 #Derived_gen.9; procedure Test.2 (Test.13): ret Test.13; diff --git a/crates/compiler/test_mono/generated/dict.txt b/crates/compiler/test_mono/generated/dict.txt index e860685adf..175c96ac6f 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.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.653 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.653; procedure Num.75 (#Attr.2, #Attr.3): let Num.281 : 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 aab2d01365..5647dd2d64 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 @@ -2,25 +2,25 @@ procedure Bool.1 (): let Bool.23 : Int1 = false; ret Bool.23; -procedure List.2 (List.116, List.117): - let List.639 : U64 = CallByName List.6 List.116; - let List.635 : Int1 = CallByName Num.22 List.117 List.639; - if List.635 then - let List.637 : {} = CallByName List.66 List.116 List.117; - let List.636 : [C {}, C {}] = TagId(1) List.637; - ret List.636; +procedure List.2 (List.118, List.119): + let List.659 : U64 = CallByName List.6 List.118; + let List.655 : Int1 = CallByName Num.22 List.119 List.659; + if List.655 then + let List.657 : {} = CallByName List.66 List.118 List.119; + let List.656 : [C {}, C {}] = TagId(1) List.657; + ret List.656; else - let List.634 : {} = Struct {}; - let List.633 : [C {}, C {}] = TagId(0) List.634; - ret List.633; + let List.654 : {} = Struct {}; + let List.653 : [C {}, C {}] = TagId(0) List.654; + ret List.653; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; procedure List.66 (#Attr.2, #Attr.3): - let List.638 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.638; + let List.658 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.658; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 5b734e11a6..a1bbf501a0 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.132, List.133): - let List.636 : U64 = 1i64; - let List.634 : List U8 = CallByName List.70 List.132 List.636; - let List.633 : List U8 = CallByName List.71 List.634 List.133; - ret List.633; +procedure List.4 (List.134, List.135): + let List.656 : U64 = 1i64; + let List.654 : List U8 = CallByName List.70 List.134 List.656; + let List.653 : List U8 = CallByName List.71 List.654 List.135; + ret List.653; procedure List.70 (#Attr.2, #Attr.3): - let List.637 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.637; + let List.657 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.657; procedure List.71 (#Attr.2, #Attr.3): - let List.635 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.635; + let List.655 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.655; 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 eb3ee132b0..2aafd1ab75 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 @@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; -procedure List.18 (List.168, List.169, List.170): - let List.660 : U64 = 0i64; - let List.661 : U64 = CallByName List.6 List.168; - let List.659 : List U8 = CallByName List.97 List.168 List.169 List.170 List.660 List.661; - ret List.659; - -procedure List.4 (List.132, List.133): - let List.681 : U64 = 1i64; - let List.680 : List U8 = CallByName List.70 List.132 List.681; - let List.679 : List U8 = CallByName List.71 List.680 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.680 : U64 = 0i64; + let List.681 : U64 = CallByName List.6 List.170; + let List.679 : List U8 = CallByName List.99 List.170 List.171 List.172 List.680 List.681; ret List.679; -procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; +procedure List.4 (List.134, List.135): + let List.701 : U64 = 1i64; + let List.700 : List U8 = CallByName List.70 List.134 List.701; + let List.699 : List U8 = CallByName List.71 List.700 List.135; + ret List.699; procedure List.6 (#Attr.2): - let List.684 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.684; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; + +procedure List.6 (#Attr.2): + let List.704 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.704; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.66 (#Attr.2, #Attr.3): - let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.669; + let List.689 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.689; procedure List.70 (#Attr.2, #Attr.3): - let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.675; + let List.695 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.695; procedure List.71 (#Attr.2, #Attr.3): - let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.673; + let List.693 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.693; procedure List.8 (#Attr.2, #Attr.3): - let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.683; + let List.703 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.703; -procedure List.97 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.71 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.71 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.29; - jump List.636 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; + inc #Derived_gen.26; + jump List.656 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; -procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.662 List.171 List.172 List.173 List.174 List.175: - let List.664 : Int1 = CallByName Num.22 List.174 List.175; - if List.664 then - let List.668 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.668; - let List.176 : List U8 = CallByName Test.71 List.172 List.668; - let List.667 : U64 = 1i64; - let List.666 : U64 = CallByName Num.51 List.174 List.667; - jump List.662 List.171 List.176 List.173 List.666 List.175; +procedure List.99 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41): + joinpoint List.682 List.173 List.174 List.175 List.176 List.177: + let List.684 : Int1 = CallByName Num.22 List.176 List.177; + if List.684 then + let List.688 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.688; + let List.178 : List U8 = CallByName Test.71 List.174 List.688; + let List.687 : U64 = 1i64; + let List.686 : U64 = CallByName Num.51 List.176 List.687; + jump List.682 List.173 List.178 List.175 List.686 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.40; - jump List.662 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; + inc #Derived_gen.37; + jump List.682 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; procedure Num.127 (#Attr.2): let Num.286 : 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 1fdf3ab07d..1da34f8bdc 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 @@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; - -procedure List.4 (List.132, List.133): - let List.655 : U64 = 1i64; - let List.654 : List U8 = CallByName List.70 List.132 List.655; - let List.653 : List U8 = CallByName List.71 List.654 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; ret List.653; +procedure List.4 (List.134, List.135): + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.134 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.135; + ret List.673; + procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.70 (#Attr.2, #Attr.3): - let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.649; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.647; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.657; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; -procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.71 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.71 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.16; - jump List.636 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + inc #Derived_gen.10; + jump List.656 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; procedure Num.127 (#Attr.2): let Num.282 : 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 4d2e25850f..37f03207e2 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 @@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; - -procedure List.4 (List.132, List.133): - let List.655 : U64 = 1i64; - let List.654 : List U8 = CallByName List.70 List.132 List.655; - let List.653 : List U8 = CallByName List.71 List.654 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; ret List.653; +procedure List.4 (List.134, List.135): + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.134 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.135; + ret List.673; + procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.70 (#Attr.2, #Attr.3): - let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.649; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.647; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.657; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; -procedure List.97 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.71 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.71 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.20; - jump List.636 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + inc #Derived_gen.14; + jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure Num.127 (#Attr.2): let Num.282 : 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 f484b24175..5d664fb20c 100644 --- a/crates/compiler/test_mono/generated/encode_derived_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_string.txt @@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.4 (List.132, List.133): - let List.643 : U64 = 1i64; - let List.642 : List U8 = CallByName List.70 List.132 List.643; - let List.641 : List U8 = CallByName List.71 List.642 List.133; - ret List.641; +procedure List.4 (List.134, List.135): + let List.663 : U64 = 1i64; + let List.662 : List U8 = CallByName List.70 List.134 List.663; + let List.661 : List U8 = CallByName List.71 List.662 List.135; + ret List.661; procedure List.70 (#Attr.2, #Attr.3): - let List.637 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.637; + let List.657 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.657; procedure List.71 (#Attr.2, #Attr.3): - let List.635 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.635; + let List.655 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.655; procedure List.8 (#Attr.2, #Attr.3): - let List.645 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.645; + let List.665 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.665; procedure Num.127 (#Attr.2): let Num.282 : 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 ff27b9865a..40dbcecea2 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.13 (#Attr.2, #Attr.3): - let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.659; + let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.679; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; - -procedure List.4 (List.132, List.133): - let List.655 : U64 = 1i64; - let List.654 : List U8 = CallByName List.70 List.132 List.655; - let List.653 : List U8 = CallByName List.71 List.654 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; ret List.653; +procedure List.4 (List.134, List.135): + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.134 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.135; + ret List.673; + procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.70 (#Attr.2, #Attr.3): - let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.649; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.647; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.657; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; -procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Str = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.64 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Str = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.64 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.13; - jump List.636 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + inc #Derived_gen.22; + jump List.656 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; procedure Num.127 (#Attr.2): let Num.282 : 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 567bfbd65f..8600343aed 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.13 (#Attr.2, #Attr.3): - let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.659; + let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.679; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; - -procedure List.4 (List.132, List.133): - let List.655 : U64 = 1i64; - let List.654 : List U8 = CallByName List.70 List.132 List.655; - let List.653 : List U8 = CallByName List.71 List.654 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; ret List.653; +procedure List.4 (List.134, List.135): + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.134 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.135; + ret List.673; + procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.70 (#Attr.2, #Attr.3): - let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.649; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.647; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.657; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; -procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Str = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.64 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Str = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.64 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.14; - jump List.636 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure Num.127 (#Attr.2): let Num.282 : 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 6b08e4660b..9f10d57092 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -145,7 +145,7 @@ procedure Dict.43 (Dict.126): let Dict.1101 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Inspect.30 Dict.126; ret Dict.1101; -procedure Dict.45 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): +procedure Dict.45 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45): joinpoint Dict.744 Dict.228 Dict.229 Dict.230 Dict.231 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236: let Dict.237 : {U32, U32} = CallByName Dict.22 Dict.228 Dict.230; let Dict.791 : U32 = StructAtIndex 1 Dict.237; @@ -188,8 +188,8 @@ procedure Dict.45 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_g let Dict.246 : U32 = CallByName Dict.55 Dict.231; jump Dict.744 Dict.228 Dict.229 Dict.245 Dict.246 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236; in - inc #Derived_gen.49; - jump Dict.744 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; + inc #Derived_gen.41; + jump Dict.744 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45; procedure Dict.48 (): let Dict.868 : U32 = 0i64; @@ -322,7 +322,7 @@ procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18): inc #Derived_gen.16; jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; -procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): +procedure Dict.74 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48): joinpoint Dict.761 Dict.422 Dict.423 Dict.424: let Dict.425 : {U32, U32} = CallByName Dict.22 Dict.422 Dict.424; let Dict.771 : U32 = StructAtIndex 1 Dict.425; @@ -341,7 +341,7 @@ procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): let Dict.762 : List {U32, U32} = CallByName List.3 Dict.422 Dict.424 Dict.423; ret Dict.762; in - jump Dict.761 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56; + jump Dict.761 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; procedure Dict.75 (Dict.427, Dict.428): let Dict.757 : U64 = 1i64; @@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.11 (List.146, List.147): - let List.695 : List {U32, U32} = CallByName List.68 List.147; - let List.694 : List {U32, U32} = CallByName List.95 List.146 List.147 List.695; - ret List.694; +procedure List.100 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): + joinpoint List.695 List.182 List.183 List.184 List.185 List.186: + let List.697 : Int1 = CallByName Num.22 List.185 List.186; + if List.697 then + let List.701 : {Str, I64} = CallByName List.66 List.182 List.185; + inc List.701; + let List.187 : List {U32, U32} = CallByName Dict.406 List.183 List.701 List.185 List.184; + let List.700 : U64 = 1i64; + let List.699 : U64 = CallByName Num.51 List.185 List.700; + jump List.695 List.182 List.187 List.184 List.699 List.186; + else + dec List.182; + ret List.183; + in + inc #Derived_gen.28; + jump List.695 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.11 (List.148, List.149): + let List.715 : List {U32, U32} = CallByName List.68 List.149; + let List.714 : List {U32, U32} = CallByName List.97 List.148 List.149 List.715; + ret List.714; -procedure List.18 (List.168, List.169, List.170): - let List.698 : U64 = 0i64; - let List.699 : U64 = CallByName List.6 List.168; - let List.697 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.698 List.699; - ret List.697; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; -procedure List.3 (List.124, List.125, List.126): - let List.659 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.124 List.125 List.126; - let List.658 : List {U32, U32} = StructAtIndex 0 List.659; - ret List.658; +procedure List.18 (List.170, List.171, List.172): + let List.718 : U64 = 0i64; + let List.719 : U64 = CallByName List.6 List.170; + let List.717 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.718 List.719; + ret List.717; -procedure List.3 (List.124, List.125, List.126): - let List.661 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.124 List.125 List.126; - let List.660 : List {Str, I64} = StructAtIndex 0 List.661; - let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.661; +procedure List.3 (List.126, List.127, List.128): + let List.679 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.126 List.127 List.128; + let List.678 : List {U32, U32} = StructAtIndex 0 List.679; + ret List.678; + +procedure List.3 (List.126, List.127, List.128): + let List.681 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.126 List.127 List.128; + let List.680 : List {Str, I64} = StructAtIndex 0 List.681; + let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.681; dec #Derived_gen.71; - ret List.660; + ret List.680; -procedure List.4 (List.132, List.133): - let List.670 : U64 = 1i64; - let List.668 : List {Str, I64} = CallByName List.70 List.132 List.670; - let List.667 : List {Str, I64} = CallByName List.71 List.668 List.133; - ret List.667; +procedure List.4 (List.134, List.135): + let List.690 : U64 = 1i64; + let List.688 : List {Str, I64} = CallByName List.70 List.134 List.690; + let List.687 : List {Str, I64} = CallByName List.71 List.688 List.135; + ret List.687; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; - -procedure List.6 (#Attr.2): - let List.696 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.696; - -procedure List.6 (#Attr.2): - let List.708 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.708; - -procedure List.64 (List.121, List.122, List.123): - let List.657 : U64 = CallByName List.6 List.121; - let List.654 : Int1 = CallByName Num.22 List.122 List.657; - if List.654 then - let List.655 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.121 List.122 List.123; - ret List.655; - else - let List.653 : {List {U32, U32}, {U32, U32}} = Struct {List.121, List.123}; - ret List.653; - -procedure List.64 (List.121, List.122, List.123): - let List.666 : U64 = CallByName List.6 List.121; - let List.663 : Int1 = CallByName Num.22 List.122 List.666; - if List.663 then - let List.664 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.121 List.122 List.123; - ret List.664; - else - let List.662 : {List {Str, I64}, {Str, I64}} = Struct {List.121, List.123}; - ret List.662; - -procedure List.66 (#Attr.2, #Attr.3): - let List.707 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.656 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.656; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.665 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.665; - -procedure List.68 (#Attr.2): - let List.693 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; - ret List.693; - -procedure List.70 (#Attr.2, #Attr.3): - let List.671 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.671; - -procedure List.71 (#Attr.2, #Attr.3): - let List.669 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + let List.669 : U64 = lowlevel ListLenU64 #Attr.2; ret List.669; +procedure List.6 (#Attr.2): + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.716; + +procedure List.6 (#Attr.2): + let List.728 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.728; + +procedure List.64 (List.123, List.124, List.125): + let List.677 : U64 = CallByName List.6 List.123; + let List.674 : Int1 = CallByName Num.22 List.124 List.677; + if List.674 then + let List.675 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.123 List.124 List.125; + ret List.675; + else + let List.673 : {List {U32, U32}, {U32, U32}} = Struct {List.123, List.125}; + ret List.673; + +procedure List.64 (List.123, List.124, List.125): + let List.686 : U64 = CallByName List.6 List.123; + let List.683 : Int1 = CallByName Num.22 List.124 List.686; + if List.683 then + let List.684 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.123 List.124 List.125; + ret List.684; + else + let List.682 : {List {Str, I64}, {Str, I64}} = Struct {List.123, List.125}; + ret List.682; + +procedure List.66 (#Attr.2, #Attr.3): + let List.727 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.727; + +procedure List.67 (#Attr.2, #Attr.3, #Attr.4): + let List.676 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.676; + +procedure List.67 (#Attr.2, #Attr.3, #Attr.4): + let List.685 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.685; + +procedure List.68 (#Attr.2): + let List.713 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.713; + +procedure List.70 (#Attr.2, #Attr.3): + let List.691 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.691; + procedure List.71 (#Attr.2, #Attr.3): - let List.690 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.690; + let List.689 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.689; -procedure List.83 (List.177, List.178, List.179): - let List.673 : U64 = 0i64; - let List.674 : U64 = CallByName List.6 List.177; - let List.672 : List {U32, U32} = CallByName List.98 List.177 List.178 List.179 List.673 List.674; - ret List.672; +procedure List.71 (#Attr.2, #Attr.3): + let List.710 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.710; -procedure List.95 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39): - joinpoint List.684 List.148 List.149 List.150: - let List.692 : U64 = 0i64; - let List.686 : Int1 = CallByName Num.24 List.149 List.692; - if List.686 then - let List.691 : U64 = 1i64; - let List.688 : U64 = CallByName Num.75 List.149 List.691; - let List.689 : List {U32, U32} = CallByName List.71 List.150 List.148; - jump List.684 List.148 List.688 List.689; +procedure List.83 (List.179, List.180, List.181): + let List.693 : U64 = 0i64; + let List.694 : U64 = CallByName List.6 List.179; + let List.692 : List {U32, U32} = CallByName List.100 List.179 List.180 List.181 List.693 List.694; + ret List.692; + +procedure List.97 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53): + joinpoint List.704 List.150 List.151 List.152: + let List.712 : U64 = 0i64; + let List.706 : Int1 = CallByName Num.24 List.151 List.712; + if List.706 then + let List.711 : U64 = 1i64; + let List.708 : U64 = CallByName Num.75 List.151 List.711; + let List.709 : List {U32, U32} = CallByName List.71 List.152 List.150; + jump List.704 List.150 List.708 List.709; else - ret List.150; + ret List.152; in - jump List.684 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; + jump List.704 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; -procedure List.97 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, I64} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.56, #Derived_gen.57, #Derived_gen.58, #Derived_gen.59, #Derived_gen.60): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, I64} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.26; - jump List.636 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + inc #Derived_gen.56; + jump List.656 #Derived_gen.56 #Derived_gen.57 #Derived_gen.58 #Derived_gen.59 #Derived_gen.60; -procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.700 List.171 List.172 List.173 List.174 List.175: - let List.702 : Int1 = CallByName Num.22 List.174 List.175; - if List.702 then - let List.706 : {Str, I64} = CallByName List.66 List.171 List.174; - inc List.706; - let List.176 : {Str, Int1} = CallByName Dict.188 List.172 List.706 List.173; - let List.705 : U64 = 1i64; - let List.704 : U64 = CallByName Num.51 List.174 List.705; - jump List.700 List.171 List.176 List.173 List.704 List.175; +procedure List.99 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65): + joinpoint List.720 List.173 List.174 List.175 List.176 List.177: + let List.722 : Int1 = CallByName Num.22 List.176 List.177; + if List.722 then + let List.726 : {Str, I64} = CallByName List.66 List.173 List.176; + inc List.726; + let List.178 : {Str, Int1} = CallByName Dict.188 List.174 List.726 List.175; + let List.725 : U64 = 1i64; + let List.724 : U64 = CallByName Num.51 List.176 List.725; + jump List.720 List.173 List.178 List.175 List.724 List.177; else - dec List.171; - ret List.172; - in - inc #Derived_gen.40; - jump List.700 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; - -procedure List.98 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65): - joinpoint List.675 List.180 List.181 List.182 List.183 List.184: - let List.677 : Int1 = CallByName Num.22 List.183 List.184; - if List.677 then - let List.681 : {Str, I64} = CallByName List.66 List.180 List.183; - inc List.681; - let List.185 : List {U32, U32} = CallByName Dict.406 List.181 List.681 List.183 List.182; - let List.680 : U64 = 1i64; - let List.679 : U64 = CallByName Num.51 List.183 List.680; - jump List.675 List.180 List.185 List.182 List.679 List.184; - else - dec List.180; - ret List.181; + dec List.173; + ret List.174; in inc #Derived_gen.61; - jump List.675 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; + jump List.720 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; procedure Num.131 (#Attr.2): let Num.289 : 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 83c3be34b2..3b1d9a360a 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -135,35 +135,35 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : I64 = CallByName List.66 List.171 List.174; - let List.176 : {Str, Int1} = CallByName Inspect.160 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : I64 = CallByName List.66 List.173 List.176; + let List.178 : {Str, Int1} = CallByName Inspect.160 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.8; - jump List.636 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; + inc #Derived_gen.13; + jump List.656 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; 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/inspect_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt index 7daa9676bf..3b02cab0f4 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 @@ -221,67 +221,67 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; -procedure List.18 (List.168, List.169, List.170): - let List.646 : U64 = 0i64; - let List.647 : U64 = CallByName List.6 List.168; - let List.645 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.646 List.647; - ret List.645; +procedure List.18 (List.170, List.171, List.172): + let List.666 : U64 = 0i64; + let List.667 : U64 = CallByName List.6 List.170; + let List.665 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.666 List.667; + ret List.665; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.6 (#Attr.2): - let List.656 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.656; + let List.676 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.66 (#Attr.2, #Attr.3): - let List.655 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.655; + let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.675; -procedure List.97 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.28; - jump List.636 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; + jump List.656 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; -procedure List.97 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): - joinpoint List.648 List.171 List.172 List.173 List.174 List.175: - let List.650 : Int1 = CallByName Num.22 List.174 List.175; - if List.650 then - let List.654 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.654; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.654; - let List.653 : U64 = 1i64; - let List.652 : U64 = CallByName Num.51 List.174 List.653; - jump List.648 List.171 List.176 List.173 List.652 List.175; +procedure List.99 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39): + joinpoint List.668 List.173 List.174 List.175 List.176 List.177: + let List.670 : Int1 = CallByName Num.22 List.176 List.177; + if List.670 then + let List.674 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.674; + let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.674; + let List.673 : U64 = 1i64; + let List.672 : U64 = CallByName Num.51 List.176 List.673; + jump List.668 List.173 List.178 List.175 List.672 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.33; - jump List.648 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; + inc #Derived_gen.35; + jump List.668 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; 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.txt b/crates/compiler/test_mono/generated/inspect_derived_record.txt index a8e07ad2f2..0ac422b782 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -161,36 +161,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {[C I64, C Decimal], Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {[C I64, C Decimal], Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.14; - jump List.636 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + inc #Derived_gen.26; + jump List.656 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; 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_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt index 9dcbf0f869..692a9975fa 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 @@ -139,36 +139,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.12; - jump List.636 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + inc #Derived_gen.14; + jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 01354211d1..f343e14ecc 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 @@ -146,36 +146,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : {Str, Str} = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.16; - jump List.636 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + inc #Derived_gen.18; + jump List.656 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 611c8ce2ac..65595740b4 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 @@ -132,43 +132,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.115): - let List.646 : U64 = CallByName List.6 List.115; - let List.647 : U64 = 0i64; - let List.645 : Int1 = CallByName Bool.11 List.646 List.647; - ret List.645; +procedure List.1 (List.117): + let List.666 : U64 = CallByName List.6 List.117; + let List.667 : U64 = 0i64; + let List.665 : Int1 = CallByName Bool.11 List.666 List.667; + ret List.665; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : Str = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : Str = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Str = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : Str = CallByName Inspect.210 List.172 List.642; - dec List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Str = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : Str = CallByName Inspect.210 List.174 List.662; + dec List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.10; - jump List.636 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; + inc #Derived_gen.12; + jump List.656 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 7d0288da7d..9746ad269b 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 @@ -135,43 +135,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.115): - let List.646 : U64 = CallByName List.6 List.115; - let List.647 : U64 = 0i64; - let List.645 : Int1 = CallByName Bool.11 List.646 List.647; - ret List.645; +procedure List.1 (List.117): + let List.666 : U64 = CallByName List.6 List.117; + let List.667 : U64 = 0i64; + let List.665 : Int1 = CallByName Bool.11 List.666 List.667; + ret List.665; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : Str = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : Str = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Str = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : Str = CallByName Inspect.210 List.172 List.642; - dec List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Str = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : Str = CallByName Inspect.210 List.174 List.662; + dec List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.15; - jump List.636 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19; + inc #Derived_gen.17; + jump List.656 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 3a099114ed..b6f83a43ae 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.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.653 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.653; 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/issue_2583_specialize_errors_behind_unified_branches.txt b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt index fd4fdc38b8..4c73dd9747 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 @@ -6,40 +6,40 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.2 (List.116, List.117): - let List.647 : U64 = CallByName List.6 List.116; - let List.643 : Int1 = CallByName Num.22 List.117 List.647; - if List.643 then - let List.645 : I64 = CallByName List.66 List.116 List.117; - let List.644 : [C {}, C I64] = TagId(1) List.645; - ret List.644; +procedure List.2 (List.118, List.119): + let List.667 : U64 = CallByName List.6 List.118; + let List.663 : Int1 = CallByName Num.22 List.119 List.667; + if List.663 then + let List.665 : I64 = CallByName List.66 List.118 List.119; + let List.664 : [C {}, C I64] = TagId(1) List.665; + ret List.664; else - let List.642 : {} = Struct {}; - let List.641 : [C {}, C I64] = TagId(0) List.642; - ret List.641; + let List.662 : {} = Struct {}; + let List.661 : [C {}, C I64] = TagId(0) List.662; + ret List.661; procedure List.6 (#Attr.2): - let List.648 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.648; + let List.668 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.668; procedure List.66 (#Attr.2, #Attr.3): - let List.646 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; + let List.666 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; -procedure List.9 (List.388): - let List.640 : U64 = 0i64; - let List.633 : [C {}, C I64] = CallByName List.2 List.388 List.640; - let List.637 : U8 = 1i64; - let List.638 : U8 = GetTagId List.633; - let List.639 : Int1 = lowlevel Eq List.637 List.638; - if List.639 then - let List.389 : I64 = UnionAtIndex (Id 1) (Index 0) List.633; - let List.634 : [C Int1, C I64] = TagId(1) List.389; - ret List.634; +procedure List.9 (List.390): + let List.660 : U64 = 0i64; + let List.653 : [C {}, C I64] = CallByName List.2 List.390 List.660; + let List.657 : U8 = 1i64; + let List.658 : U8 = GetTagId List.653; + let List.659 : Int1 = lowlevel Eq List.657 List.658; + if List.659 then + let List.391 : I64 = UnionAtIndex (Id 1) (Index 0) List.653; + let List.654 : [C Int1, C I64] = TagId(1) List.391; + ret List.654; else - let List.636 : Int1 = true; - let List.635 : [C Int1, C I64] = TagId(0) List.636; - ret List.635; + let List.656 : Int1 = true; + let List.655 : [C Int1, C I64] = TagId(0) List.656; + ret List.655; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 c7835fac32..021417d1c4 100644 --- a/crates/compiler/test_mono/generated/issue_4770.txt +++ b/crates/compiler/test_mono/generated/issue_4770.txt @@ -6,118 +6,118 @@ procedure Bool.2 (): let Bool.24 : Int1 = true; ret Bool.24; -procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.671 List.287 List.288 List.289 List.290 List.291 List.292: - let List.673 : Int1 = CallByName Num.22 List.291 List.292; - if List.673 then - let List.679 : [C I64, C List *self] = CallByName List.66 List.287 List.291; - inc List.679; - let List.680 : [C I64, C List *self] = CallByName List.66 List.288 List.291; - inc List.680; - let List.293 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.679 List.680; - let List.675 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.289 List.293; - let List.677 : U64 = 1i64; - let List.676 : U64 = CallByName Num.51 List.291 List.677; - jump List.671 List.287 List.288 List.675 List.290 List.676 List.292; +procedure List.104 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6): + joinpoint List.691 List.289 List.290 List.291 List.292 List.293 List.294: + let List.693 : Int1 = CallByName Num.22 List.293 List.294; + if List.693 then + let List.699 : [C I64, C List *self] = CallByName List.66 List.289 List.293; + inc List.699; + let List.700 : [C I64, C List *self] = CallByName List.66 List.290 List.293; + inc List.700; + let List.295 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.699 List.700; + let List.695 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.291 List.295; + let List.697 : U64 = 1i64; + let List.696 : U64 = CallByName Num.51 List.293 List.697; + jump List.691 List.289 List.290 List.695 List.292 List.696 List.294; else - dec List.287; - dec List.288; - ret List.289; + dec List.289; + dec List.290; + ret List.291; in - inc #Derived_gen.0; inc #Derived_gen.1; - jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + inc #Derived_gen.2; + jump List.691 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6; -procedure List.112 (List.547, List.548, List.549): - let List.647 : U64 = 0i64; - let List.648 : U64 = CallByName List.6 List.547; - let List.646 : [C {}, C {}] = CallByName List.80 List.547 List.548 List.549 List.647 List.648; - ret List.646; +procedure List.114 (List.567, List.568, List.569): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.567; + let List.666 : [C {}, C {}] = CallByName List.80 List.567 List.568 List.569 List.667 List.668; + ret List.666; -procedure List.23 (List.283, List.284, List.285): - let List.683 : U64 = CallByName List.6 List.283; - let List.684 : U64 = CallByName List.6 List.284; - let List.286 : U64 = CallByName Num.148 List.683 List.684; - let List.669 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.286; - let List.670 : U64 = 0i64; - let List.668 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.102 List.283 List.284 List.669 List.285 List.670 List.286; - ret List.668; +procedure List.23 (List.285, List.286, List.287): + let List.703 : U64 = CallByName List.6 List.285; + let List.704 : U64 = CallByName List.6 List.286; + let List.288 : U64 = CallByName Num.148 List.703 List.704; + let List.689 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.288; + let List.690 : U64 = 0i64; + let List.688 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.104 List.285 List.286 List.689 List.287 List.690 List.288; + ret List.688; -procedure List.244 (List.635, List.245, List.243): - let List.665 : Int1 = CallByName Test.1 List.245; - if List.665 then - let List.667 : {} = Struct {}; - let List.666 : [C {}, C {}] = TagId(1) List.667; - ret List.666; +procedure List.246 (List.655, List.247, List.245): + let List.685 : Int1 = CallByName Test.1 List.247; + if List.685 then + let List.687 : {} = Struct {}; + let List.686 : [C {}, C {}] = TagId(1) List.687; + ret List.686; else - let List.664 : {} = Struct {}; - let List.663 : [C {}, C {}] = TagId(0) List.664; - ret List.663; + let List.684 : {} = Struct {}; + let List.683 : [C {}, C {}] = TagId(0) List.684; + ret List.683; -procedure List.56 (List.242, List.243): - let List.644 : {} = Struct {}; - let List.636 : [C {}, C {}] = CallByName List.112 List.242 List.644 List.243; - let List.641 : U8 = 1i64; - let List.642 : U8 = GetTagId List.636; - let List.643 : Int1 = lowlevel Eq List.641 List.642; - if List.643 then - let List.637 : Int1 = CallByName Bool.2; - ret List.637; +procedure List.56 (List.244, List.245): + let List.664 : {} = Struct {}; + let List.656 : [C {}, C {}] = CallByName List.114 List.244 List.664 List.245; + let List.661 : U8 = 1i64; + let List.662 : U8 = GetTagId List.656; + let List.663 : Int1 = lowlevel Eq List.661 List.662; + if List.663 then + let List.657 : Int1 = CallByName Bool.2; + ret List.657; else - let List.638 : Int1 = CallByName Bool.1; - ret List.638; + let List.658 : Int1 = CallByName Bool.1; + ret List.658; procedure List.6 (#Attr.2): - let List.634 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.634; + let List.654 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.654; procedure List.6 (#Attr.2): - let List.662 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.662; - -procedure List.66 (#Attr.2, #Attr.3): - let List.661 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.661; - -procedure List.66 (#Attr.2, #Attr.3): - let List.681 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.681; - -procedure List.68 (#Attr.2): - let List.682 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + let List.682 : U64 = lowlevel ListLenU64 #Attr.2; ret List.682; +procedure List.66 (#Attr.2, #Attr.3): + let List.681 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.681; + +procedure List.66 (#Attr.2, #Attr.3): + let List.701 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.701; + +procedure List.68 (#Attr.2): + let List.702 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.702; + procedure List.71 (#Attr.2, #Attr.3): - let List.678 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.678; + let List.698 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.698; procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.649 List.550 List.551 List.552 List.553 List.554: - let List.651 : Int1 = CallByName Num.22 List.553 List.554; - if List.651 then - let List.660 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.550 List.553; - inc List.660; - let List.652 : [C {}, C {}] = CallByName List.244 List.551 List.660 List.552; - let List.657 : U8 = 1i64; - let List.658 : U8 = GetTagId List.652; - let List.659 : Int1 = lowlevel Eq List.657 List.658; - if List.659 then - let List.555 : {} = UnionAtIndex (Id 1) (Index 0) List.652; - let List.655 : U64 = 1i64; - let List.654 : U64 = CallByName Num.51 List.553 List.655; - jump List.649 List.550 List.555 List.552 List.654 List.554; + joinpoint List.669 List.570 List.571 List.572 List.573 List.574: + let List.671 : Int1 = CallByName Num.22 List.573 List.574; + if List.671 then + let List.680 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.570 List.573; + inc List.680; + let List.672 : [C {}, C {}] = CallByName List.246 List.571 List.680 List.572; + let List.677 : U8 = 1i64; + let List.678 : U8 = GetTagId List.672; + let List.679 : Int1 = lowlevel Eq List.677 List.678; + if List.679 then + let List.575 : {} = UnionAtIndex (Id 1) (Index 0) List.672; + let List.675 : U64 = 1i64; + let List.674 : U64 = CallByName Num.51 List.573 List.675; + jump List.669 List.570 List.575 List.572 List.674 List.574; else - dec List.550; - let List.556 : {} = UnionAtIndex (Id 0) (Index 0) List.652; - let List.656 : [C {}, C {}] = TagId(0) List.556; - ret List.656; + dec List.570; + let List.576 : {} = UnionAtIndex (Id 0) (Index 0) List.672; + let List.676 : [C {}, C {}] = TagId(0) List.576; + ret List.676; else - dec List.550; - let List.650 : [C {}, C {}] = TagId(1) List.551; - ret List.650; + dec List.570; + let List.670 : [C {}, C {}] = TagId(1) List.571; + ret List.670; in inc #Derived_gen.7; - jump List.649 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + jump List.669 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; procedure Num.148 (Num.225, Num.226): let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226; @@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3): let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3; ret Num.284; -procedure Test.1 (#Derived_gen.6): +procedure Test.1 (#Derived_gen.0): joinpoint Test.26 Test.6: let Test.65 : [C I64, C List *self] = StructAtIndex 1 Test.6; let Test.66 : U8 = 0i64; @@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.6): let Test.44 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.45, Test.46}; jump Test.26 Test.44; in - jump Test.26 #Derived_gen.6; + jump Test.26 #Derived_gen.0; procedure Test.15 (Test.16, Test.17): let Test.36 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.16, Test.17}; 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 8ac72ab367..eb97175247 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.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : [, C {[C *self, ], *self}] = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : [, C {[C *self, ], *self}] = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; procedure List.6 (#Attr.2): - let List.644 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.644; + let List.664 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.664; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : [C *self, ] = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : [, C {[C *self, ], *self}] = CallByName Test.7 List.172 List.642; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : [C *self, ] = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : [, C {[C *self, ], *self}] = CallByName Test.7 List.174 List.662; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.0; - jump List.636 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.656 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 33c6167af3..fe28614103 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.132, List.133): - let List.636 : U64 = 1i64; - let List.634 : List I64 = CallByName List.70 List.132 List.636; - let List.633 : List I64 = CallByName List.71 List.634 List.133; - ret List.633; +procedure List.4 (List.134, List.135): + let List.656 : U64 = 1i64; + let List.654 : List I64 = CallByName List.70 List.134 List.656; + let List.653 : List I64 = CallByName List.71 List.654 List.135; + ret List.653; procedure List.70 (#Attr.2, #Attr.3): - let List.637 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.637; + let List.657 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.657; procedure List.71 (#Attr.2, #Attr.3): - let List.635 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.635; + let List.655 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.655; 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 4014974835..c530905a4f 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.132, List.133): - let List.636 : U64 = 1i64; - let List.634 : List I64 = CallByName List.70 List.132 List.636; - let List.633 : List I64 = CallByName List.71 List.634 List.133; - ret List.633; +procedure List.4 (List.134, List.135): + let List.656 : U64 = 1i64; + let List.654 : List I64 = CallByName List.70 List.134 List.656; + let List.653 : List I64 = CallByName List.71 List.654 List.135; + ret List.653; procedure List.70 (#Attr.2, #Attr.3): - let List.637 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.637; + let List.657 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.657; procedure List.71 (#Attr.2, #Attr.3): - let List.635 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.635; + let List.655 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.655; 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 f49797e939..9959ac80c1 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.124, List.125, List.126): - let List.636 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.635 : List I64 = StructAtIndex 0 List.636; - ret List.635; +procedure List.3 (List.126, List.127, List.128): + let List.656 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128; + let List.655 : List I64 = StructAtIndex 0 List.656; + ret List.655; procedure List.6 (#Attr.2): - let List.634 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.634; + let List.654 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.654; -procedure List.64 (List.121, List.122, List.123): - let List.641 : U64 = CallByName List.6 List.121; - let List.638 : Int1 = CallByName Num.22 List.122 List.641; - if List.638 then - let List.639 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.639; +procedure List.64 (List.123, List.124, List.125): + let List.661 : U64 = CallByName List.6 List.123; + let List.658 : Int1 = CallByName Num.22 List.124 List.661; + if List.658 then + let List.659 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125; + ret List.659; else - let List.637 : {List I64, I64} = Struct {List.121, List.123}; - ret List.637; + let List.657 : {List I64, I64} = Struct {List.123, List.125}; + ret List.657; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.640 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.640; + let List.660 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.660; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 f8e5d20184..0afecf165d 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.116, List.117): - let List.639 : U64 = CallByName List.6 List.116; - let List.635 : Int1 = CallByName Num.22 List.117 List.639; - if List.635 then - let List.637 : I64 = CallByName List.66 List.116 List.117; - let List.636 : [C {}, C I64] = TagId(1) List.637; - ret List.636; +procedure List.2 (List.118, List.119): + let List.659 : U64 = CallByName List.6 List.118; + let List.655 : Int1 = CallByName Num.22 List.119 List.659; + if List.655 then + let List.657 : I64 = CallByName List.66 List.118 List.119; + let List.656 : [C {}, C I64] = TagId(1) List.657; + ret List.656; else - let List.634 : {} = Struct {}; - let List.633 : [C {}, C I64] = TagId(0) List.634; - ret List.633; + let List.654 : {} = Struct {}; + let List.653 : [C {}, C I64] = TagId(0) List.654; + ret List.653; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; procedure List.66 (#Attr.2, #Attr.3): - let List.638 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.638; + let List.658 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.658; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 8454f7c836..92442458c6 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.633 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.633; + let List.653 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.653; procedure List.6 (#Attr.2): - let List.634 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.634; + let List.654 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.654; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 2f8a18275d..8568c43f5f 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.18 (List.168, List.169, List.170): - let List.645 : U64 = 0i64; - let List.646 : U64 = CallByName List.6 List.168; - let List.644 : List Str = CallByName List.97 List.168 List.169 List.170 List.645 List.646; - ret List.644; +procedure List.18 (List.170, List.171, List.172): + let List.665 : U64 = 0i64; + let List.666 : U64 = CallByName List.6 List.170; + let List.664 : List Str = CallByName List.99 List.170 List.171 List.172 List.665 List.666; + ret List.664; -procedure List.2 (List.116, List.117): - let List.639 : U64 = CallByName List.6 List.116; - let List.635 : Int1 = CallByName Num.22 List.117 List.639; - if List.635 then - let List.637 : Str = CallByName List.66 List.116 List.117; - inc List.637; - let List.636 : [C {}, C Str] = TagId(1) List.637; - ret List.636; +procedure List.2 (List.118, List.119): + let List.659 : U64 = CallByName List.6 List.118; + let List.655 : Int1 = CallByName Num.22 List.119 List.659; + if List.655 then + let List.657 : Str = CallByName List.66 List.118 List.119; + inc List.657; + let List.656 : [C {}, C Str] = TagId(1) List.657; + ret List.656; else - let List.634 : {} = Struct {}; - let List.633 : [C {}, C Str] = TagId(0) List.634; - ret List.633; + let List.654 : {} = Struct {}; + let List.653 : [C {}, C Str] = TagId(0) List.654; + ret List.653; -procedure List.280 (List.281, List.282, List.278): - let List.656 : Str = CallByName Test.3 List.282; - let List.655 : List Str = CallByName List.71 List.281 List.656; - ret List.655; +procedure List.282 (List.283, List.284, List.280): + let List.676 : Str = CallByName Test.3 List.284; + let List.675 : List Str = CallByName List.71 List.283 List.676; + ret List.675; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.642 : List Str = CallByName List.68 List.279; - let List.641 : List Str = CallByName List.18 List.277 List.642 List.278; - ret List.641; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.662 : List Str = CallByName List.68 List.281; + let List.661 : List Str = CallByName List.18 List.279 List.662 List.280; + ret List.661; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; procedure List.66 (#Attr.2, #Attr.3): - let List.638 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.638; - -procedure List.68 (#Attr.2): - let List.658 : List Str = lowlevel ListWithCapacity #Attr.2; + let List.658 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; ret List.658; -procedure List.71 (#Attr.2, #Attr.3): - let List.657 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.657; +procedure List.68 (#Attr.2): + let List.678 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.678; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.647 List.171 List.172 List.173 List.174 List.175: - let List.649 : Int1 = CallByName Num.22 List.174 List.175; - if List.649 then - let List.653 : Str = CallByName List.66 List.171 List.174; - inc List.653; - let List.176 : List Str = CallByName List.280 List.172 List.653 List.173; - dec List.653; - let List.652 : U64 = 1i64; - let List.651 : U64 = CallByName Num.51 List.174 List.652; - jump List.647 List.171 List.176 List.173 List.651 List.175; +procedure List.71 (#Attr.2, #Attr.3): + let List.677 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; + +procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.667 List.173 List.174 List.175 List.176 List.177: + let List.669 : Int1 = CallByName Num.22 List.176 List.177; + if List.669 then + let List.673 : Str = CallByName List.66 List.173 List.176; + inc List.673; + let List.178 : List Str = CallByName List.282 List.174 List.673 List.175; + dec List.673; + let List.672 : U64 = 1i64; + let List.671 : U64 = CallByName Num.51 List.176 List.672; + jump List.667 List.173 List.178 List.175 List.671 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.0; - jump List.647 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + inc #Derived_gen.3; + jump List.667 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 da8fc3050c..0c9193dbed 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.18 (List.168, List.169, List.170): - let List.645 : U64 = 0i64; - let List.646 : U64 = CallByName List.6 List.168; - let List.644 : List Str = CallByName List.97 List.168 List.169 List.170 List.645 List.646; - ret List.644; +procedure List.18 (List.170, List.171, List.172): + let List.665 : U64 = 0i64; + let List.666 : U64 = CallByName List.6 List.170; + let List.664 : List Str = CallByName List.99 List.170 List.171 List.172 List.665 List.666; + ret List.664; -procedure List.2 (List.116, List.117): - let List.639 : U64 = CallByName List.6 List.116; - let List.635 : Int1 = CallByName Num.22 List.117 List.639; - if List.635 then - let List.637 : Str = CallByName List.66 List.116 List.117; - inc List.637; - let List.636 : [C {}, C Str] = TagId(1) List.637; - ret List.636; +procedure List.2 (List.118, List.119): + let List.659 : U64 = CallByName List.6 List.118; + let List.655 : Int1 = CallByName Num.22 List.119 List.659; + if List.655 then + let List.657 : Str = CallByName List.66 List.118 List.119; + inc List.657; + let List.656 : [C {}, C Str] = TagId(1) List.657; + ret List.656; else - let List.634 : {} = Struct {}; - let List.633 : [C {}, C Str] = TagId(0) List.634; - ret List.633; + let List.654 : {} = Struct {}; + let List.653 : [C {}, C Str] = TagId(0) List.654; + ret List.653; -procedure List.280 (List.281, List.282, List.278): - let List.656 : Str = CallByName Test.3 List.282; - let List.655 : List Str = CallByName List.71 List.281 List.656; - ret List.655; +procedure List.282 (List.283, List.284, List.280): + let List.676 : Str = CallByName Test.3 List.284; + let List.675 : List Str = CallByName List.71 List.283 List.676; + ret List.675; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.642 : List Str = CallByName List.68 List.279; - let List.641 : List Str = CallByName List.18 List.277 List.642 List.278; - ret List.641; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.662 : List Str = CallByName List.68 List.281; + let List.661 : List Str = CallByName List.18 List.279 List.662 List.280; + ret List.661; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; procedure List.66 (#Attr.2, #Attr.3): - let List.638 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.638; - -procedure List.68 (#Attr.2): - let List.658 : List Str = lowlevel ListWithCapacity #Attr.2; + let List.658 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; ret List.658; -procedure List.71 (#Attr.2, #Attr.3): - let List.657 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.657; +procedure List.68 (#Attr.2): + let List.678 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.678; -procedure List.97 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.647 List.171 List.172 List.173 List.174 List.175: - let List.649 : Int1 = CallByName Num.22 List.174 List.175; - if List.649 then - let List.653 : Str = CallByName List.66 List.171 List.174; - inc List.653; - let List.176 : List Str = CallByName List.280 List.172 List.653 List.173; - let List.652 : U64 = 1i64; - let List.651 : U64 = CallByName Num.51 List.174 List.652; - jump List.647 List.171 List.176 List.173 List.651 List.175; +procedure List.71 (#Attr.2, #Attr.3): + let List.677 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; + +procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.667 List.173 List.174 List.175 List.176 List.177: + let List.669 : Int1 = CallByName Num.22 List.176 List.177; + if List.669 then + let List.673 : Str = CallByName List.66 List.173 List.176; + inc List.673; + let List.178 : List Str = CallByName List.282 List.174 List.673 List.175; + let List.672 : U64 = 1i64; + let List.671 : U64 = CallByName Num.51 List.176 List.672; + jump List.667 List.173 List.178 List.175 List.671 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in inc #Derived_gen.3; - jump List.647 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + jump List.667 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 5728f7515d..2229f21905 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.18 (List.168, List.169, List.170): - let List.637 : U64 = 0i64; - let List.638 : U64 = CallByName List.6 List.168; - let List.636 : List U8 = CallByName List.97 List.168 List.169 List.170 List.637 List.638; - ret List.636; +procedure List.18 (List.170, List.171, List.172): + let List.657 : U64 = 0i64; + let List.658 : U64 = CallByName List.6 List.170; + let List.656 : List U8 = CallByName List.99 List.170 List.171 List.172 List.657 List.658; + ret List.656; -procedure List.280 (List.281, List.282, List.278): - let List.652 : U8 = GetTagId List.278; - joinpoint List.653 List.650: - let List.649 : List U8 = CallByName List.71 List.281 List.650; - ret List.649; +procedure List.282 (List.283, List.284, List.280): + let List.672 : U8 = GetTagId List.280; + joinpoint List.673 List.670: + let List.669 : List U8 = CallByName List.71 List.283 List.670; + ret List.669; in - switch List.652: + switch List.672: case 0: - let List.654 : U8 = CallByName Test.4 List.282 List.278; - jump List.653 List.654; + let List.674 : U8 = CallByName Test.4 List.284 List.280; + jump List.673 List.674; case 1: - let List.654 : U8 = CallByName Test.6 List.282 List.278; - jump List.653 List.654; + let List.674 : U8 = CallByName Test.6 List.284 List.280; + jump List.673 List.674; default: - let List.654 : U8 = CallByName Test.8 List.282; - jump List.653 List.654; + let List.674 : U8 = CallByName Test.8 List.284; + jump List.673 List.674; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.634 : List U8 = CallByName List.68 List.279; - let List.633 : List U8 = CallByName List.18 List.277 List.634 List.278; - ret List.633; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.654 : List U8 = CallByName List.68 List.281; + let List.653 : List U8 = CallByName List.18 List.279 List.654 List.280; + ret List.653; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.646 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; + let List.666 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; procedure List.68 (#Attr.2): - let List.655 : List U8 = lowlevel ListWithCapacity #Attr.2; - ret List.655; + let List.675 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.651 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.651; + let List.671 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.671; -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.639 List.171 List.172 List.173 List.174 List.175: - let List.641 : Int1 = CallByName Num.22 List.174 List.175; - if List.641 then - let List.645 : U8 = CallByName List.66 List.171 List.174; - let List.176 : List U8 = CallByName List.280 List.172 List.645 List.173; - let List.644 : U64 = 1i64; - let List.643 : U64 = CallByName Num.51 List.174 List.644; - jump List.639 List.171 List.176 List.173 List.643 List.175; +procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.659 List.173 List.174 List.175 List.176 List.177: + let List.661 : Int1 = CallByName Num.22 List.176 List.177; + if List.661 then + let List.665 : U8 = CallByName List.66 List.173 List.176; + let List.178 : List U8 = CallByName List.282 List.174 List.665 List.175; + let List.664 : U64 = 1i64; + let List.663 : U64 = CallByName Num.51 List.176 List.664; + jump List.659 List.173 List.178 List.175 List.663 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.0; - jump List.639 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + inc #Derived_gen.3; + jump List.659 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : 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 f0c622465d..afd94e4122 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.124, List.125, List.126): - let List.634 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.633 : List I64 = StructAtIndex 0 List.634; - ret List.633; +procedure List.3 (List.126, List.127, List.128): + let List.654 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128; + let List.653 : List I64 = StructAtIndex 0 List.654; + ret List.653; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; -procedure List.64 (List.121, List.122, List.123): - let List.639 : U64 = CallByName List.6 List.121; - let List.636 : Int1 = CallByName Num.22 List.122 List.639; - if List.636 then - let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.637; +procedure List.64 (List.123, List.124, List.125): + let List.659 : U64 = CallByName List.6 List.123; + let List.656 : Int1 = CallByName Num.22 List.124 List.659; + if List.656 then + let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125; + ret List.657; else - let List.635 : {List I64, I64} = Struct {List.121, List.123}; - ret List.635; + let List.655 : {List I64, I64} = Struct {List.123, List.125}; + ret List.655; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.638; + let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.658; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 4b77956d58..2188b4c030 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.635 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.635; + let List.655 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.655; -procedure List.59 (List.383): - let List.634 : {} = Struct {}; - let List.633 : List I64 = CallByName List.28 List.383 List.634; - ret List.633; +procedure List.59 (List.385): + let List.654 : {} = Struct {}; + let List.653 : List I64 = CallByName List.28 List.385 List.654; + ret List.653; procedure Num.46 (#Attr.2, #Attr.3): let Num.281 : 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 920a2c7d11..dc9198f46a 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.116, List.117): - let List.655 : U64 = CallByName List.6 List.116; - let List.652 : Int1 = CallByName Num.22 List.117 List.655; - if List.652 then - let List.654 : I64 = CallByName List.66 List.116 List.117; - let List.653 : [C {}, C I64] = TagId(1) List.654; - ret List.653; +procedure List.2 (List.118, List.119): + let List.675 : U64 = CallByName List.6 List.118; + let List.672 : Int1 = CallByName Num.22 List.119 List.675; + if List.672 then + let List.674 : I64 = CallByName List.66 List.118 List.119; + let List.673 : [C {}, C I64] = TagId(1) List.674; + ret List.673; else - let List.651 : {} = Struct {}; - let List.650 : [C {}, C I64] = TagId(0) List.651; - ret List.650; + let List.671 : {} = Struct {}; + let List.670 : [C {}, C I64] = TagId(0) List.671; + ret List.670; -procedure List.3 (List.124, List.125, List.126): - let List.642 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.641 : List I64 = StructAtIndex 0 List.642; - ret List.641; +procedure List.3 (List.126, List.127, List.128): + let List.662 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128; + let List.661 : List I64 = StructAtIndex 0 List.662; + ret List.661; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; -procedure List.64 (List.121, List.122, List.123): - let List.639 : U64 = CallByName List.6 List.121; - let List.636 : Int1 = CallByName Num.22 List.122 List.639; - if List.636 then - let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.637; +procedure List.64 (List.123, List.124, List.125): + let List.659 : U64 = CallByName List.6 List.123; + let List.656 : Int1 = CallByName Num.22 List.124 List.659; + if List.656 then + let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125; + ret List.657; else - let List.635 : {List I64, I64} = Struct {List.121, List.123}; - ret List.635; + let List.655 : {List I64, I64} = Struct {List.123, List.125}; + ret List.655; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.668 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.668; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.638; + let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.658; 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/record_update.txt b/crates/compiler/test_mono/generated/record_update.txt index 5367024be6..99cfcc5a02 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.124, List.125, List.126): - let List.642 : {List U64, U64} = CallByName List.64 List.124 List.125 List.126; - let List.641 : List U64 = StructAtIndex 0 List.642; - ret List.641; +procedure List.3 (List.126, List.127, List.128): + let List.662 : {List U64, U64} = CallByName List.64 List.126 List.127 List.128; + let List.661 : List U64 = StructAtIndex 0 List.662; + ret List.661; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; -procedure List.64 (List.121, List.122, List.123): - let List.639 : U64 = CallByName List.6 List.121; - let List.636 : Int1 = CallByName Num.22 List.122 List.639; - if List.636 then - let List.637 : {List U64, U64} = CallByName List.67 List.121 List.122 List.123; - ret List.637; +procedure List.64 (List.123, List.124, List.125): + let List.659 : U64 = CallByName List.6 List.123; + let List.656 : Int1 = CallByName Num.22 List.124 List.659; + if List.656 then + let List.657 : {List U64, U64} = CallByName List.67 List.123 List.124 List.125; + ret List.657; else - let List.635 : {List U64, U64} = Struct {List.121, List.123}; - ret List.635; + let List.655 : {List U64, U64} = Struct {List.123, List.125}; + ret List.655; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.638 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.638; + let List.658 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.658; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 de07397834..f02432c625 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.18 (List.168, List.169, List.170): - let List.637 : U64 = 0i64; - let List.638 : U64 = CallByName List.6 List.168; - let List.636 : List [C List *self] = CallByName List.97 List.168 List.169 List.170 List.637 List.638; - ret List.636; +procedure List.18 (List.170, List.171, List.172): + let List.657 : U64 = 0i64; + let List.658 : U64 = CallByName List.6 List.170; + let List.656 : List [C List *self] = CallByName List.99 List.170 List.171 List.172 List.657 List.658; + ret List.656; -procedure List.280 (List.281, List.282, List.278): - let List.650 : [C List *self] = CallByName Test.2 List.282; - let List.649 : List [C List *self] = CallByName List.71 List.281 List.650; - ret List.649; +procedure List.282 (List.283, List.284, List.280): + let List.670 : [C List *self] = CallByName Test.2 List.284; + let List.669 : List [C List *self] = CallByName List.71 List.283 List.670; + ret List.669; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.634 : List [C List *self] = CallByName List.68 List.279; - let List.633 : List [C List *self] = CallByName List.18 List.277 List.634 List.278; - ret List.633; +procedure List.5 (List.279, List.280): + let List.281 : U64 = CallByName List.6 List.279; + let List.654 : List [C List *self] = CallByName List.68 List.281; + let List.653 : List [C List *self] = CallByName List.18 List.279 List.654 List.280; + ret List.653; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; procedure List.66 (#Attr.2, #Attr.3): - let List.646 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.646; + let List.666 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.666; procedure List.68 (#Attr.2): - let List.652 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.652; + let List.672 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.672; procedure List.71 (#Attr.2, #Attr.3): - let List.651 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.651; + let List.671 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.671; -procedure List.97 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.639 List.171 List.172 List.173 List.174 List.175: - let List.641 : Int1 = CallByName Num.22 List.174 List.175; - if List.641 then - let List.645 : [C List *self] = CallByName List.66 List.171 List.174; - inc List.645; - let List.176 : List [C List *self] = CallByName List.280 List.172 List.645 List.173; - let List.644 : U64 = 1i64; - let List.643 : U64 = CallByName Num.51 List.174 List.644; - jump List.639 List.171 List.176 List.173 List.643 List.175; +procedure List.99 (#Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8): + joinpoint List.659 List.173 List.174 List.175 List.176 List.177: + let List.661 : Int1 = CallByName Num.22 List.176 List.177; + if List.661 then + let List.665 : [C List *self] = CallByName List.66 List.173 List.176; + inc List.665; + let List.178 : List [C List *self] = CallByName List.282 List.174 List.665 List.175; + let List.664 : U64 = 1i64; + let List.663 : U64 = CallByName Num.51 List.176 List.664; + jump List.659 List.173 List.178 List.175 List.663 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.1; - jump List.639 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + inc #Derived_gen.4; + jump List.659 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 60225e261b..d19ead293c 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.116, List.117): - let List.655 : U64 = CallByName List.6 List.116; - let List.652 : Int1 = CallByName Num.22 List.117 List.655; - if List.652 then - let List.654 : I64 = CallByName List.66 List.116 List.117; - let List.653 : [C {}, C I64] = TagId(1) List.654; - ret List.653; +procedure List.2 (List.118, List.119): + let List.675 : U64 = CallByName List.6 List.118; + let List.672 : Int1 = CallByName Num.22 List.119 List.675; + if List.672 then + let List.674 : I64 = CallByName List.66 List.118 List.119; + let List.673 : [C {}, C I64] = TagId(1) List.674; + ret List.673; else - let List.651 : {} = Struct {}; - let List.650 : [C {}, C I64] = TagId(0) List.651; - ret List.650; + let List.671 : {} = Struct {}; + let List.670 : [C {}, C I64] = TagId(0) List.671; + ret List.670; -procedure List.3 (List.124, List.125, List.126): - let List.642 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.641 : List I64 = StructAtIndex 0 List.642; - ret List.641; +procedure List.3 (List.126, List.127, List.128): + let List.662 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128; + let List.661 : List I64 = StructAtIndex 0 List.662; + ret List.661; procedure List.6 (#Attr.2): - let List.640 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.640; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; -procedure List.64 (List.121, List.122, List.123): - let List.639 : U64 = CallByName List.6 List.121; - let List.636 : Int1 = CallByName Num.22 List.122 List.639; - if List.636 then - let List.637 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.637; +procedure List.64 (List.123, List.124, List.125): + let List.659 : U64 = CallByName List.6 List.123; + let List.656 : Int1 = CallByName Num.22 List.124 List.659; + if List.656 then + let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125; + ret List.657; else - let List.635 : {List I64, I64} = Struct {List.121, List.123}; - ret List.635; + let List.655 : {List I64, I64} = Struct {List.123, List.125}; + ret List.655; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.668 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.668; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.638 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.638; + let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.658; 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/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 b908a02885..df4ab93ee5 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.13 (#Attr.2, #Attr.3): - let List.659 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.659; + let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.679; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; - -procedure List.4 (List.132, List.133): - let List.655 : U64 = 1i64; - let List.654 : List U8 = CallByName List.70 List.132 List.655; - let List.653 : List U8 = CallByName List.71 List.654 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; ret List.653; +procedure List.4 (List.134, List.135): + let List.675 : U64 = 1i64; + let List.674 : List U8 = CallByName List.70 List.134 List.675; + let List.673 : List U8 = CallByName List.71 List.674 List.135; + ret List.673; + procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.70 (#Attr.2, #Attr.3): - let List.649 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.649; + let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.669; procedure List.71 (#Attr.2, #Attr.3): - let List.647 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.647; + let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.667; procedure List.8 (#Attr.2, #Attr.3): - let List.657 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.657; + let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.677; -procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : Str = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.66 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : Str = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.66 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.12; - jump List.636 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + inc #Derived_gen.0; + jump List.656 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.127 (#Attr.2): let Num.282 : 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 f34d7bea49..578d2316d6 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.13 (#Attr.2, #Attr.3): - let List.659 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.659; + let List.679 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.679; procedure List.13 (#Attr.2, #Attr.3): - let List.687 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.687; + let List.707 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.707; -procedure List.18 (List.168, List.169, List.170): - let List.634 : U64 = 0i64; - let List.635 : U64 = CallByName List.6 List.168; - let List.633 : List U8 = CallByName List.97 List.168 List.169 List.170 List.634 List.635; - ret List.633; +procedure List.18 (List.170, List.171, List.172): + let List.654 : U64 = 0i64; + let List.655 : U64 = CallByName List.6 List.170; + let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655; + ret List.653; -procedure List.18 (List.168, List.169, List.170): - let List.661 : U64 = 0i64; - let List.662 : U64 = CallByName List.6 List.168; - let List.660 : List U8 = CallByName List.97 List.168 List.169 List.170 List.661 List.662; - ret List.660; - -procedure List.4 (List.132, List.133): - let List.682 : U64 = 1i64; - let List.681 : List U8 = CallByName List.70 List.132 List.682; - let List.680 : List U8 = CallByName List.71 List.681 List.133; +procedure List.18 (List.170, List.171, List.172): + let List.681 : U64 = 0i64; + let List.682 : U64 = CallByName List.6 List.170; + let List.680 : List U8 = CallByName List.99 List.170 List.171 List.172 List.681 List.682; ret List.680; -procedure List.6 (#Attr.2): - let List.658 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.658; +procedure List.4 (List.134, List.135): + let List.702 : U64 = 1i64; + let List.701 : List U8 = CallByName List.70 List.134 List.702; + let List.700 : List U8 = CallByName List.71 List.701 List.135; + ret List.700; procedure List.6 (#Attr.2): - let List.685 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.685; + let List.678 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.678; + +procedure List.6 (#Attr.2): + let List.705 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.705; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.663 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.663; procedure List.66 (#Attr.2, #Attr.3): - let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.670; + let List.690 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.690; procedure List.70 (#Attr.2, #Attr.3): - let List.676 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.676; + let List.696 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.696; procedure List.71 (#Attr.2, #Attr.3): - let List.674 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.694 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.694; procedure List.8 (#Attr.2, #Attr.3): - let List.684 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.684; + let List.704 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.704; -procedure List.97 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42): - joinpoint List.663 List.171 List.172 List.173 List.174 List.175: - let List.665 : Int1 = CallByName Num.22 List.174 List.175; - if List.665 then - let List.669 : Str = CallByName List.66 List.171 List.174; - inc List.669; - let List.176 : List U8 = CallByName Test.66 List.172 List.669 List.173; - let List.668 : U64 = 1i64; - let List.667 : U64 = CallByName Num.51 List.174 List.668; - jump List.663 List.171 List.176 List.173 List.667 List.175; +procedure List.99 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): + joinpoint List.656 List.173 List.174 List.175 List.176 List.177: + let List.658 : Int1 = CallByName Num.22 List.176 List.177; + if List.658 then + let List.662 : [C {}, C {}, C Str] = CallByName List.66 List.173 List.176; + inc List.662; + let List.178 : List U8 = CallByName Test.66 List.174 List.662 List.175; + let List.661 : U64 = 1i64; + let List.660 : U64 = CallByName Num.51 List.176 List.661; + jump List.656 List.173 List.178 List.175 List.660 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.38; - jump List.663 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42; + inc #Derived_gen.23; + jump List.656 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; -procedure List.97 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50): - joinpoint List.636 List.171 List.172 List.173 List.174 List.175: - let List.638 : Int1 = CallByName Num.22 List.174 List.175; - if List.638 then - let List.642 : [C {}, C {}, C Str] = CallByName List.66 List.171 List.174; - inc List.642; - let List.176 : List U8 = CallByName Test.66 List.172 List.642 List.173; - let List.641 : U64 = 1i64; - let List.640 : U64 = CallByName Num.51 List.174 List.641; - jump List.636 List.171 List.176 List.173 List.640 List.175; +procedure List.99 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47): + joinpoint List.683 List.173 List.174 List.175 List.176 List.177: + let List.685 : Int1 = CallByName Num.22 List.176 List.177; + if List.685 then + let List.689 : Str = CallByName List.66 List.173 List.176; + inc List.689; + let List.178 : List U8 = CallByName Test.66 List.174 List.689 List.175; + let List.688 : U64 = 1i64; + let List.687 : U64 = CallByName Num.51 List.176 List.688; + jump List.683 List.173 List.178 List.175 List.687 List.177; else - dec List.171; - ret List.172; + dec List.173; + ret List.174; in - inc #Derived_gen.46; - jump List.636 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50; + inc #Derived_gen.43; + jump List.683 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; procedure Num.127 (#Attr.2): let Num.286 : 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 6d648d9fc7..00f3843ff3 100644 --- a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt +++ b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.112 (List.547, List.548, List.549): - let List.651 : U64 = 0i64; - let List.652 : U64 = CallByName List.6 List.547; - let List.650 : [C U64, C U64] = CallByName List.80 List.547 List.548 List.549 List.651 List.652; - ret List.650; +procedure List.114 (List.567, List.568, List.569): + let List.671 : U64 = 0i64; + let List.672 : U64 = CallByName List.6 List.567; + let List.670 : [C U64, C U64] = CallByName List.80 List.567 List.568 List.569 List.671 List.672; + ret List.670; -procedure List.26 (List.209, List.210, List.211): - let List.644 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; - let List.647 : U8 = 1i64; - let List.648 : U8 = GetTagId List.644; - let List.649 : Int1 = lowlevel Eq List.647 List.648; - if List.649 then - let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.644; - ret List.212; +procedure List.26 (List.211, List.212, List.213): + let List.664 : [C U64, C U64] = CallByName List.114 List.211 List.212 List.213; + let List.667 : U8 = 1i64; + let List.668 : U8 = GetTagId List.664; + let List.669 : Int1 = lowlevel Eq List.667 List.668; + if List.669 then + let List.214 : U64 = UnionAtIndex (Id 1) (Index 0) List.664; + ret List.214; else - let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.644; - ret List.213; + let List.215 : U64 = UnionAtIndex (Id 0) (Index 0) List.664; + ret List.215; -procedure List.38 (List.397, List.398): - let List.643 : U64 = CallByName List.6 List.397; - let List.399 : U64 = CallByName Num.77 List.643 List.398; - let List.633 : List U8 = CallByName List.43 List.397 List.399; - ret List.633; +procedure List.38 (List.399, List.400): + let List.663 : U64 = CallByName List.6 List.399; + let List.401 : U64 = CallByName Num.77 List.663 List.400; + let List.653 : List U8 = CallByName List.43 List.399 List.401; + ret List.653; -procedure List.43 (List.395, List.396): - let List.641 : U64 = CallByName List.6 List.395; - let List.640 : U64 = CallByName Num.77 List.641 List.396; - let List.635 : {U64, U64} = Struct {List.396, List.640}; - let List.634 : List U8 = CallByName List.49 List.395 List.635; - ret List.634; +procedure List.43 (List.397, List.398): + let List.661 : U64 = CallByName List.6 List.397; + let List.660 : U64 = CallByName Num.77 List.661 List.398; + let List.655 : {U64, U64} = Struct {List.398, List.660}; + let List.654 : List U8 = CallByName List.49 List.397 List.655; + ret List.654; -procedure List.49 (List.473, List.474): - let List.637 : U64 = StructAtIndex 1 List.474; - let List.638 : U64 = StructAtIndex 0 List.474; - let List.636 : List U8 = CallByName List.72 List.473 List.637 List.638; - ret List.636; +procedure List.49 (List.475, List.476): + let List.657 : U64 = StructAtIndex 1 List.476; + let List.658 : U64 = StructAtIndex 0 List.476; + let List.656 : List U8 = CallByName List.72 List.475 List.657 List.658; + ret List.656; procedure List.6 (#Attr.2): - let List.642 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.642; + let List.662 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.662; procedure List.66 (#Attr.2, #Attr.3): - let List.665 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.665; + let List.685 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.685; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.639 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.639; + let List.659 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.659; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.653 List.550 List.551 List.552 List.553 List.554: - let List.655 : Int1 = CallByName Num.22 List.553 List.554; - if List.655 then - let List.664 : U8 = CallByName List.66 List.550 List.553; - let List.656 : [C U64, C U64] = CallByName Test.3 List.551 List.664; - let List.661 : U8 = 1i64; - let List.662 : U8 = GetTagId List.656; - let List.663 : Int1 = lowlevel Eq List.661 List.662; - if List.663 then - let List.555 : U64 = UnionAtIndex (Id 1) (Index 0) List.656; - let List.659 : U64 = 1i64; - let List.658 : U64 = CallByName Num.51 List.553 List.659; - jump List.653 List.550 List.555 List.552 List.658 List.554; + joinpoint List.673 List.570 List.571 List.572 List.573 List.574: + let List.675 : Int1 = CallByName Num.22 List.573 List.574; + if List.675 then + let List.684 : U8 = CallByName List.66 List.570 List.573; + let List.676 : [C U64, C U64] = CallByName Test.3 List.571 List.684; + let List.681 : U8 = 1i64; + let List.682 : U8 = GetTagId List.676; + let List.683 : Int1 = lowlevel Eq List.681 List.682; + if List.683 then + let List.575 : U64 = UnionAtIndex (Id 1) (Index 0) List.676; + let List.679 : U64 = 1i64; + let List.678 : U64 = CallByName Num.51 List.573 List.679; + jump List.673 List.570 List.575 List.572 List.678 List.574; else - dec List.550; - let List.556 : U64 = UnionAtIndex (Id 0) (Index 0) List.656; - let List.660 : [C U64, C U64] = TagId(0) List.556; - ret List.660; + dec List.570; + let List.576 : U64 = UnionAtIndex (Id 0) (Index 0) List.676; + let List.680 : [C U64, C U64] = TagId(0) List.576; + ret List.680; else - dec List.550; - let List.654 : [C U64, C U64] = TagId(1) List.551; - ret List.654; + dec List.570; + let List.674 : [C U64, C U64] = TagId(1) List.571; + ret List.674; in inc #Derived_gen.0; - jump List.653 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; From 5c1eb7efe5d7f5ef99376e961b3a3a5f513a4a3b Mon Sep 17 00:00:00 2001 From: Luke Boswell Date: Wed, 13 Nov 2024 07:47:47 +1100 Subject: [PATCH 06/14] add a cli test that uses echo --- crates/cli/tests/cli_tests.rs | 15 ++++++++ .../tests/test-projects/effectful/echo.roc | 35 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 crates/cli/tests/test-projects/effectful/echo.roc diff --git a/crates/cli/tests/cli_tests.rs b/crates/cli/tests/cli_tests.rs index 9a77c58f91..217206678f 100644 --- a/crates/cli/tests/cli_tests.rs +++ b/crates/cli/tests/cli_tests.rs @@ -955,6 +955,21 @@ mod cli_tests { cli_build.run().assert_clean_stdout(expected_out); } + + #[test] + #[cfg_attr(windows, ignore)] + fn effectful_echo() { + build_platform_host(); + + let cli_build = ExecCli::new( + roc_cli::CMD_DEV, + file_from_root("crates/cli/tests/test-projects/effectful", "echo.roc"), + ); + + let expected_output = " hello1 hello hell hel he h\n"; + + cli_build.check_build_and_run(expected_output, ALLOW_VALGRIND, Some("hello1"), None); + } } // this is for testing the benchmarks (on small inputs), to perform proper benchmarks see crates/cli/benches/README.md diff --git a/crates/cli/tests/test-projects/effectful/echo.roc b/crates/cli/tests/test-projects/effectful/echo.roc new file mode 100644 index 0000000000..c3c51c1dfc --- /dev/null +++ b/crates/cli/tests/test-projects/effectful/echo.roc @@ -0,0 +1,35 @@ +app [main!] { pf: platform "../test-platform-effects-zig/main.roc" } + +import pf.Effect + +main! : {} => {} +main! = \{} -> tick! {} + +tick! = \{} -> + line = Effect.getLine! {} + + if !(Str.isEmpty line) then + Effect.putLine! (echo line) + else + Effect.putLine! "Received no input." + +echo : Str -> Str +echo = \shout -> + silence = \length -> List.repeat ' ' length + + shout + |> Str.toUtf8 + |> List.mapWithIndex \_, i -> + length = (List.len (Str.toUtf8 shout) - i) + phrase = (List.splitAt (Str.toUtf8 shout) length).before + + List.concat (silence (if i == 0 then 2 * length else length)) phrase + |> List.join + |> Str.fromUtf8 + |> Result.withDefault "" + +expect + message = "hello!" + echoedMessage = echo message + + echoedMessage == " hello! hello hell hel he h" From 8f0ca0c91c6bd4df44e79526c12492df73990679 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Tue, 12 Nov 2024 21:24:24 -0600 Subject: [PATCH 07/14] fix numbering --- crates/compiler/module/src/symbol.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index 457a2deff7..cbbcc7ce6c 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1510,11 +1510,11 @@ define_builtins! { 88 LIST_LEN_USIZE: "lenUsize" 89 LIST_CONCAT_UTF8: "concatUtf8" 90 LIST_WALK_FX: "walk!" - 90 LIST_FOR_EACH_FX: "forEach!" - 91 LIST_FOR_EACH_TRY_FX: "forEachTry!" - 92 LIST_SPLIT_AT: "splitAt" - 93 LIST_SPLIT_ON: "splitOn" - 94 LIST_SPLIT_ON_LIST: "splitOnList" + 91 LIST_FOR_EACH_FX: "forEach!" + 92 LIST_FOR_EACH_TRY_FX: "forEachTry!" + 93 LIST_SPLIT_AT: "splitAt" + 94 LIST_SPLIT_ON: "splitOn" + 95 LIST_SPLIT_ON_LIST: "splitOnList" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias From ae4d6828061b6f483b56fc1b10c0479d6e1f3162 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Tue, 12 Nov 2024 21:28:10 -0600 Subject: [PATCH 08/14] change symbol ordering --- crates/compiler/module/src/symbol.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index cbbcc7ce6c..9156c1d4e6 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1509,12 +1509,12 @@ define_builtins! { 87 LIST_CLONE: "clone" 88 LIST_LEN_USIZE: "lenUsize" 89 LIST_CONCAT_UTF8: "concatUtf8" - 90 LIST_WALK_FX: "walk!" - 91 LIST_FOR_EACH_FX: "forEach!" - 92 LIST_FOR_EACH_TRY_FX: "forEachTry!" + 90 LIST_FOR_EACH_FX: "forEach!" + 91 LIST_FOR_EACH_TRY_FX: "forEachTry!" + 92 LIST_WALK_FX: "walk!" 93 LIST_SPLIT_AT: "splitAt" 94 LIST_SPLIT_ON: "splitOn" - 95 LIST_SPLIT_ON_LIST: "splitOnList" + 94 LIST_SPLIT_ON_LIST: "splitOnList" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias From 9a14991c8f85f72219be93ee91596499657e0c98 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Tue, 12 Nov 2024 21:58:00 -0600 Subject: [PATCH 09/14] update mono tests --- ...e_in_polymorphic_expression_issue_4717.txt | 116 ++++---- .../generated/call_function_in_empty_list.txt | 90 +++--- .../call_function_in_empty_list_unbound.txt | 90 +++--- .../generated/capture_void_layout_task.txt | 50 ++-- ...ose_correct_recursion_var_under_record.txt | 166 +++++------ .../test_mono/generated/closure_in_list.txt | 4 +- ...lambda_set_productive_nullable_wrapped.txt | 50 ++-- crates/compiler/test_mono/generated/dict.txt | 4 +- .../generated/empty_list_of_function_type.txt | 28 +- .../compiler/test_mono/generated/encode.txt | 18 +- .../encode_derived_nested_record_string.txt | 126 ++++---- ...encode_derived_record_one_field_string.txt | 90 +++--- ...ncode_derived_record_two_field_strings.txt | 90 +++--- .../generated/encode_derived_string.txt | 22 +- .../encode_derived_tag_one_field_string.txt | 98 +++---- ...encode_derived_tag_two_payloads_string.txt | 78 ++--- .../generated/inspect_derived_dict.txt | 270 +++++++++--------- .../generated/inspect_derived_list.txt | 50 ++-- .../inspect_derived_nested_record_string.txt | 104 +++---- .../generated/inspect_derived_record.txt | 52 ++-- ...nspect_derived_record_one_field_string.txt | 52 ++-- ...spect_derived_record_two_field_strings.txt | 52 ++-- .../inspect_derived_tag_one_field_string.txt | 64 ++--- ...nspect_derived_tag_two_payloads_string.txt | 66 ++--- .../test_mono/generated/ir_int_add.txt | 4 +- ...cialize_errors_behind_unified_branches.txt | 54 ++-- .../test_mono/generated/issue_4770.txt | 180 ++++++------ ...ure_with_multiple_recursive_structures.txt | 54 ++-- .../test_mono/generated/list_append.txt | 18 +- .../generated/list_append_closure.txt | 18 +- .../generated/list_cannot_update_inplace.txt | 32 +-- .../compiler/test_mono/generated/list_get.txt | 28 +- .../compiler/test_mono/generated/list_len.txt | 8 +- .../generated/list_map_closure_borrows.txt | 102 +++---- .../generated/list_map_closure_owns.txt | 118 ++++---- ...ist_map_take_capturing_or_noncapturing.txt | 120 ++++---- .../generated/list_pass_to_function.txt | 32 +-- .../test_mono/generated/list_sort_asc.txt | 12 +- .../test_mono/generated/quicksort_swap.txt | 56 ++-- .../test_mono/generated/record_update.txt | 32 +-- ...function_and_union_with_inference_hole.txt | 92 +++--- .../compiler/test_mono/generated/rigids.txt | 56 ++-- ...not_duplicate_identical_concrete_types.txt | 98 +++---- ...types_without_unification_of_unifiable.txt | 134 ++++----- .../weakening_avoids_overspecialization.txt | 116 ++++---- 45 files changed, 1597 insertions(+), 1597 deletions(-) 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 8fe29d38a2..298155bb61 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 @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.112 (List.541, List.542, List.543): - let List.656 : U64 = 0i64; - let List.657 : U64 = CallByName List.6 List.541; - let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657; - ret List.655; +procedure List.116 (List.569, List.570, List.571): + let List.684 : U64 = 0i64; + let List.685 : U64 = CallByName List.6 List.569; + let List.683 : [C U64, C U64] = CallByName List.80 List.569 List.570 List.571 List.684 List.685; + ret List.683; -procedure List.26 (List.209, List.210, List.211): - let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; - let List.652 : U8 = 1i64; - let List.653 : U8 = GetTagId List.649; - let List.654 : Int1 = lowlevel Eq List.652 List.653; - if List.654 then - let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649; - ret List.212; +procedure List.26 (List.213, List.214, List.215): + let List.677 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215; + let List.680 : U8 = 1i64; + let List.681 : U8 = GetTagId List.677; + let List.682 : Int1 = lowlevel Eq List.680 List.681; + if List.682 then + let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.677; + ret List.216; else - let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649; - ret List.213; + let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.677; + ret List.217; -procedure List.38 (List.397, List.398): - let List.648 : U64 = CallByName List.6 List.397; - let List.399 : U64 = CallByName Num.77 List.648 List.398; - let List.638 : List U8 = CallByName List.43 List.397 List.399; - ret List.638; +procedure List.38 (List.401, List.402): + let List.676 : U64 = CallByName List.6 List.401; + let List.403 : U64 = CallByName Num.77 List.676 List.402; + let List.666 : List U8 = CallByName List.43 List.401 List.403; + ret List.666; -procedure List.43 (List.395, List.396): - let List.646 : U64 = CallByName List.6 List.395; - let List.645 : U64 = CallByName Num.77 List.646 List.396; - let List.640 : {U64, U64} = Struct {List.396, List.645}; - let List.639 : List U8 = CallByName List.49 List.395 List.640; - ret List.639; +procedure List.43 (List.399, List.400): + let List.674 : U64 = CallByName List.6 List.399; + let List.673 : U64 = CallByName Num.77 List.674 List.400; + let List.668 : {U64, U64} = Struct {List.400, List.673}; + let List.667 : List U8 = CallByName List.49 List.399 List.668; + ret List.667; -procedure List.49 (List.473, List.474): - let List.642 : U64 = StructAtIndex 1 List.474; - let List.643 : U64 = StructAtIndex 0 List.474; - let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643; - ret List.641; +procedure List.49 (List.477, List.478): + let List.670 : U64 = StructAtIndex 1 List.478; + let List.671 : U64 = StructAtIndex 0 List.478; + let List.669 : List U8 = CallByName List.72 List.477 List.670 List.671; + ret List.669; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.675 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.675; procedure List.66 (#Attr.2, #Attr.3): - let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.670; + let List.698 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.698; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.644; + let List.672 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.672; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.658 List.544 List.545 List.546 List.547 List.548: - let List.660 : Int1 = CallByName Num.22 List.547 List.548; - if List.660 then - let List.669 : U8 = CallByName List.66 List.544 List.547; - let List.661 : [C U64, C U64] = CallByName Test.4 List.545 List.669; - let List.666 : U8 = 1i64; - let List.667 : U8 = GetTagId List.661; - let List.668 : Int1 = lowlevel Eq List.666 List.667; - if List.668 then - let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661; - let List.664 : U64 = 1i64; - let List.663 : U64 = CallByName Num.51 List.547 List.664; - jump List.658 List.544 List.549 List.546 List.663 List.548; + joinpoint List.686 List.572 List.573 List.574 List.575 List.576: + let List.688 : Int1 = CallByName Num.22 List.575 List.576; + if List.688 then + let List.697 : U8 = CallByName List.66 List.572 List.575; + let List.689 : [C U64, C U64] = CallByName Test.4 List.573 List.697; + let List.694 : U8 = 1i64; + let List.695 : U8 = GetTagId List.689; + let List.696 : Int1 = lowlevel Eq List.694 List.695; + if List.696 then + let List.577 : U64 = UnionAtIndex (Id 1) (Index 0) List.689; + let List.692 : U64 = 1i64; + let List.691 : U64 = CallByName Num.51 List.575 List.692; + jump List.686 List.572 List.577 List.574 List.691 List.576; else - dec List.544; - let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661; - let List.665 : [C U64, C U64] = TagId(0) List.550; - ret List.665; + dec List.572; + let List.578 : U64 = UnionAtIndex (Id 0) (Index 0) List.689; + let List.693 : [C U64, C U64] = TagId(0) List.578; + ret List.693; else - dec List.544; - let List.659 : [C U64, C U64] = TagId(1) List.545; - ret List.659; + dec List.572; + let List.687 : [C U64, C U64] = TagId(1) List.573; + ret List.687; in inc #Derived_gen.0; - jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.686 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; 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.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt index 1b048e3942..fa77b25c69 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.18 (List.168, List.169, List.170): - let List.642 : U64 = 0i64; - let List.643 : U64 = CallByName List.6 List.168; - let List.641 : List {} = CallByName List.97 List.168 List.169 List.170 List.642 List.643; - ret List.641; - -procedure List.280 (List.281, List.282, List.278): - let List.655 : {} = CallByName Test.2 List.282; - let List.654 : List {} = CallByName List.71 List.281 List.655; - ret List.654; - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.639 : List {} = CallByName List.68 List.279; - let List.638 : List {} = CallByName List.18 List.277 List.639 List.278; - ret List.638; - -procedure List.6 (#Attr.2): - let List.652 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.652; - -procedure List.66 (#Attr.2, #Attr.3): - let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; - -procedure List.68 (#Attr.2): - let List.657 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.657; - -procedure List.71 (#Attr.2, #Attr.3): - let List.656 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.656; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.644 List.171 List.172 List.173 List.174 List.175: - let List.646 : Int1 = CallByName Num.22 List.174 List.175; - if List.646 then - let List.650 : [] = CallByName List.66 List.171 List.174; - let List.176 : List {} = CallByName List.280 List.172 List.650 List.173; - let List.649 : U64 = 1i64; - let List.648 : U64 = CallByName Num.51 List.174 List.649; - jump List.644 List.171 List.176 List.173 List.648 List.175; +procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.672 List.175 List.176 List.177 List.178 List.179: + let List.674 : Int1 = CallByName Num.22 List.178 List.179; + if List.674 then + let List.678 : [] = CallByName List.66 List.175 List.178; + let List.180 : List {} = CallByName List.284 List.176 List.678 List.177; + let List.677 : U64 = 1i64; + let List.676 : U64 = CallByName Num.51 List.178 List.677; + jump List.672 List.175 List.180 List.177 List.676 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.0; - jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + +procedure List.18 (List.172, List.173, List.174): + let List.670 : U64 = 0i64; + let List.671 : U64 = CallByName List.6 List.172; + let List.669 : List {} = CallByName List.101 List.172 List.173 List.174 List.670 List.671; + ret List.669; + +procedure List.284 (List.285, List.286, List.282): + let List.683 : {} = CallByName Test.2 List.286; + let List.682 : List {} = CallByName List.71 List.285 List.683; + ret List.682; + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.667 : List {} = CallByName List.68 List.283; + let List.666 : List {} = CallByName List.18 List.281 List.667 List.282; + ret List.666; + +procedure List.6 (#Attr.2): + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; + +procedure List.66 (#Attr.2, #Attr.3): + let List.679 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; + +procedure List.68 (#Attr.2): + let List.685 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.685; + +procedure List.71 (#Attr.2, #Attr.3): + let List.684 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.684; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 90250a399a..b8ea3cd44a 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.18 (List.168, List.169, List.170): - let List.642 : U64 = 0i64; - let List.643 : U64 = CallByName List.6 List.168; - let List.641 : List [] = CallByName List.97 List.168 List.169 List.170 List.642 List.643; - ret List.641; - -procedure List.280 (List.281, List.282, List.278): - let List.655 : [] = CallByName Test.2 List.282; - let List.654 : List [] = CallByName List.71 List.281 List.655; - ret List.654; - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.639 : List [] = CallByName List.68 List.279; - let List.638 : List [] = CallByName List.18 List.277 List.639 List.278; - ret List.638; - -procedure List.6 (#Attr.2): - let List.652 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.652; - -procedure List.66 (#Attr.2, #Attr.3): - let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; - -procedure List.68 (#Attr.2): - let List.657 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.657; - -procedure List.71 (#Attr.2, #Attr.3): - let List.656 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.656; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.644 List.171 List.172 List.173 List.174 List.175: - let List.646 : Int1 = CallByName Num.22 List.174 List.175; - if List.646 then - let List.650 : [] = CallByName List.66 List.171 List.174; - let List.176 : List [] = CallByName List.280 List.172 List.650 List.173; - let List.649 : U64 = 1i64; - let List.648 : U64 = CallByName Num.51 List.174 List.649; - jump List.644 List.171 List.176 List.173 List.648 List.175; +procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.672 List.175 List.176 List.177 List.178 List.179: + let List.674 : Int1 = CallByName Num.22 List.178 List.179; + if List.674 then + let List.678 : [] = CallByName List.66 List.175 List.178; + let List.180 : List [] = CallByName List.284 List.176 List.678 List.177; + let List.677 : U64 = 1i64; + let List.676 : U64 = CallByName Num.51 List.178 List.677; + jump List.672 List.175 List.180 List.177 List.676 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.0; - jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + +procedure List.18 (List.172, List.173, List.174): + let List.670 : U64 = 0i64; + let List.671 : U64 = CallByName List.6 List.172; + let List.669 : List [] = CallByName List.101 List.172 List.173 List.174 List.670 List.671; + ret List.669; + +procedure List.284 (List.285, List.286, List.282): + let List.683 : [] = CallByName Test.2 List.286; + let List.682 : List [] = CallByName List.71 List.285 List.683; + ret List.682; + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.667 : List [] = CallByName List.68 List.283; + let List.666 : List [] = CallByName List.18 List.281 List.667 List.282; + ret List.666; + +procedure List.6 (#Attr.2): + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; + +procedure List.66 (#Attr.2, #Attr.3): + let List.679 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; + +procedure List.68 (#Attr.2): + let List.685 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.685; + +procedure List.71 (#Attr.2, #Attr.3): + let List.684 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.684; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 d4c450f65d..c70df82c2a 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.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : [C {}, C *self {{}, []}] = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : [] = CallByName List.66 List.175 List.178; + let List.180 : [C {}, C *self {{}, []}] = CallByName Test.29 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.9; + jump List.669 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : [C {}, C *self {{}, []}] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : [] = CallByName List.66 List.171 List.174; - let List.176 : [C {}, C *self {{}, []}] = CallByName Test.29 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.13; - jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + let List.676 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 de05bf91e4..7833ef1ea0 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 @@ -2,92 +2,92 @@ procedure Bool.1 (): let Bool.24 : Int1 = false; ret Bool.24; -procedure List.18 (List.168, List.169, List.170): - let List.658 : U64 = 0i64; - let List.659 : U64 = CallByName List.6 List.168; - let List.657 : List Str = CallByName List.97 List.168 List.169 List.170 List.658 List.659; - ret List.657; - -procedure List.2 (List.116, List.117): - let List.652 : U64 = CallByName List.6 List.116; - let List.648 : Int1 = CallByName Num.22 List.117 List.652; - if List.648 then - let List.650 : Str = CallByName List.66 List.116 List.117; - inc List.650; - let List.649 : [C {}, C Str] = TagId(1) List.650; - ret List.649; - else - let List.647 : {} = Struct {}; - let List.646 : [C {}, C Str] = TagId(0) List.647; - ret List.646; - -procedure List.280 (List.281, List.282, List.278): - let List.671 : Str = CallByName Test.10 List.282; - let List.670 : List Str = CallByName List.71 List.281 List.671; - ret List.670; - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.655 : List Str = CallByName List.68 List.279; - let List.654 : List Str = CallByName List.18 List.277 List.655 List.278; - ret List.654; - -procedure List.6 (#Attr.2): - let List.653 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.653; - -procedure List.6 (#Attr.2): - let List.668 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.668; - -procedure List.66 (#Attr.2, #Attr.3): - let List.651 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; - -procedure List.66 (#Attr.2, #Attr.3): - let List.667 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.667; - -procedure List.68 (#Attr.2): - let List.673 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.673; - -procedure List.71 (#Attr.2, #Attr.3): - let List.672 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.672; - -procedure List.9 (List.388): - let List.645 : U64 = 0i64; - let List.638 : [C {}, C Str] = CallByName List.2 List.388 List.645; - let List.642 : U8 = 1i64; - let List.643 : U8 = GetTagId List.638; - let List.644 : Int1 = lowlevel Eq List.642 List.643; - if List.644 then - let List.389 : Str = UnionAtIndex (Id 1) (Index 0) List.638; - let List.639 : [C {}, C Str] = TagId(1) List.389; - ret List.639; - else - dec List.638; - let List.641 : {} = Struct {}; - let List.640 : [C {}, C Str] = TagId(0) List.641; - ret List.640; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.660 List.171 List.172 List.173 List.174 List.175: - let List.662 : Int1 = CallByName Num.22 List.174 List.175; - if List.662 then - let List.666 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.171 List.174; - inc List.666; - let List.176 : List Str = CallByName List.280 List.172 List.666 List.173; - let List.665 : U64 = 1i64; - let List.664 : U64 = CallByName Num.51 List.174 List.665; - jump List.660 List.171 List.176 List.173 List.664 List.175; +procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.688 List.175 List.176 List.177 List.178 List.179: + let List.690 : Int1 = CallByName Num.22 List.178 List.179; + if List.690 then + let List.694 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.175 List.178; + inc List.694; + let List.180 : List Str = CallByName List.284 List.176 List.694 List.177; + let List.693 : U64 = 1i64; + let List.692 : U64 = CallByName Num.51 List.178 List.693; + jump List.688 List.175 List.180 List.177 List.692 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.0; - jump List.660 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.688 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + +procedure List.18 (List.172, List.173, List.174): + let List.686 : U64 = 0i64; + let List.687 : U64 = CallByName List.6 List.172; + let List.685 : List Str = CallByName List.101 List.172 List.173 List.174 List.686 List.687; + ret List.685; + +procedure List.2 (List.120, List.121): + let List.680 : U64 = CallByName List.6 List.120; + let List.676 : Int1 = CallByName Num.22 List.121 List.680; + if List.676 then + let List.678 : Str = CallByName List.66 List.120 List.121; + inc List.678; + let List.677 : [C {}, C Str] = TagId(1) List.678; + ret List.677; + else + let List.675 : {} = Struct {}; + let List.674 : [C {}, C Str] = TagId(0) List.675; + ret List.674; + +procedure List.284 (List.285, List.286, List.282): + let List.699 : Str = CallByName Test.10 List.286; + let List.698 : List Str = CallByName List.71 List.285 List.699; + ret List.698; + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.683 : List Str = CallByName List.68 List.283; + let List.682 : List Str = CallByName List.18 List.281 List.683 List.282; + ret List.682; + +procedure List.6 (#Attr.2): + let List.681 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.681; + +procedure List.6 (#Attr.2): + let List.696 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.696; + +procedure List.66 (#Attr.2, #Attr.3): + let List.679 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; + +procedure List.66 (#Attr.2, #Attr.3): + let List.695 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.695; + +procedure List.68 (#Attr.2): + let List.701 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.701; + +procedure List.71 (#Attr.2, #Attr.3): + let List.700 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.700; + +procedure List.9 (List.392): + let List.673 : U64 = 0i64; + let List.666 : [C {}, C Str] = CallByName List.2 List.392 List.673; + let List.670 : U8 = 1i64; + let List.671 : U8 = GetTagId List.666; + let List.672 : Int1 = lowlevel Eq List.670 List.671; + if List.672 then + let List.393 : Str = UnionAtIndex (Id 1) (Index 0) List.666; + let List.667 : [C {}, C Str] = TagId(1) List.393; + ret List.667; + else + dec List.666; + let List.669 : {} = Struct {}; + let List.668 : [C {}, C Str] = TagId(0) List.669; + ret List.668; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 28c0bc9293..a38e8df977 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.638 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.638; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; 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 9011839420..f8c934a296 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 @@ -2,35 +2,35 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : [, C *self Int1, C *self Int1] = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Int1 = CallByName List.66 List.175 List.178; + let List.180 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.5; + jump List.669 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : [, C *self Int1, C *self Int1] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Int1 = CallByName List.66 List.171 List.174; - let List.176 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.7; - jump List.641 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + let List.676 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 0bcf7d8806..54e4799d80 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.638 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.638; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure Num.75 (#Attr.2, #Attr.3): let Num.281 : 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 704984f518..1359a02e4c 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 @@ -2,25 +2,25 @@ procedure Bool.1 (): let Bool.23 : Int1 = false; ret Bool.23; -procedure List.2 (List.116, List.117): - let List.644 : U64 = CallByName List.6 List.116; - let List.640 : Int1 = CallByName Num.22 List.117 List.644; - if List.640 then - let List.642 : {} = CallByName List.66 List.116 List.117; - let List.641 : [C {}, C {}] = TagId(1) List.642; - ret List.641; +procedure List.2 (List.120, List.121): + let List.672 : U64 = CallByName List.6 List.120; + let List.668 : Int1 = CallByName Num.22 List.121 List.672; + if List.668 then + let List.670 : {} = CallByName List.66 List.120 List.121; + let List.669 : [C {}, C {}] = TagId(1) List.670; + ret List.669; else - let List.639 : {} = Struct {}; - let List.638 : [C {}, C {}] = TagId(0) List.639; - ret List.638; + let List.667 : {} = Struct {}; + let List.666 : [C {}, C {}] = TagId(0) List.667; + ret List.666; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.671 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.671; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 a25f02def1..4ccd82f4f5 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.132, List.133): - let List.641 : U64 = 1i64; - let List.639 : List U8 = CallByName List.70 List.132 List.641; - let List.638 : List U8 = CallByName List.71 List.639 List.133; - ret List.638; +procedure List.4 (List.136, List.137): + let List.669 : U64 = 1i64; + let List.667 : List U8 = CallByName List.70 List.136 List.669; + let List.666 : List U8 = CallByName List.71 List.667 List.137; + ret List.666; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.670 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.670; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.668 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.668; 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 64ee82e298..89d9cb30ef 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 @@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.71 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.26; + jump List.669 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; -procedure List.18 (List.168, List.169, List.170): - let List.665 : U64 = 0i64; - let List.666 : U64 = CallByName List.6 List.168; - let List.664 : List U8 = CallByName List.97 List.168 List.169 List.170 List.665 List.666; - ret List.664; +procedure List.101 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38): + joinpoint List.695 List.175 List.176 List.177 List.178 List.179: + let List.697 : Int1 = CallByName Num.22 List.178 List.179; + if List.697 then + let List.701 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.701; + let List.180 : List U8 = CallByName Test.71 List.176 List.701; + let List.700 : U64 = 1i64; + let List.699 : U64 = CallByName Num.51 List.178 List.700; + jump List.695 List.175 List.180 List.177 List.699 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.34; + jump List.695 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38; -procedure List.4 (List.132, List.133): - let List.686 : U64 = 1i64; - let List.685 : List U8 = CallByName List.70 List.132 List.686; - let List.684 : List U8 = CallByName List.71 List.685 List.133; - ret List.684; +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.18 (List.172, List.173, List.174): + let List.693 : U64 = 0i64; + let List.694 : U64 = CallByName List.6 List.172; + let List.692 : List U8 = CallByName List.101 List.172 List.173 List.174 List.693 List.694; + ret List.692; + +procedure List.4 (List.136, List.137): + let List.714 : U64 = 1i64; + let List.713 : List U8 = CallByName List.70 List.136 List.714; + let List.712 : List U8 = CallByName List.71 List.713 List.137; + ret List.712; procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; procedure List.6 (#Attr.2): - let List.689 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.689; + let List.717 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.717; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.674 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.702 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.702; procedure List.70 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.680; + let List.708 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.708; procedure List.71 (#Attr.2, #Attr.3): - let List.678 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.678; + let List.706 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.706; procedure List.8 (#Attr.2, #Attr.3): - let List.688 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.688; - -procedure List.97 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.71 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.29; - jump List.641 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; - -procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.667 List.171 List.172 List.173 List.174 List.175: - let List.669 : Int1 = CallByName Num.22 List.174 List.175; - if List.669 then - let List.673 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.673; - let List.176 : List U8 = CallByName Test.71 List.172 List.673; - let List.672 : U64 = 1i64; - let List.671 : U64 = CallByName Num.51 List.174 List.672; - jump List.667 List.171 List.176 List.173 List.671 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.40; - jump List.667 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; + let List.716 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.716; procedure Num.127 (#Attr.2): let Num.286 : 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 650f0ecd42..06f609dfa8 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 @@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.4 (List.132, List.133): - let List.660 : U64 = 1i64; - let List.659 : List U8 = CallByName List.70 List.132 List.660; - let List.658 : List U8 = CallByName List.71 List.659 List.133; - ret List.658; - -procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.70 (#Attr.2, #Attr.3): - let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.654; - -procedure List.71 (#Attr.2, #Attr.3): - let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.652; - -procedure List.8 (#Attr.2, #Attr.3): - let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.71 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.71 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.16; - jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.669 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.4 (List.136, List.137): + let List.688 : U64 = 1i64; + let List.687 : List U8 = CallByName List.70 List.136 List.688; + let List.686 : List U8 = CallByName List.71 List.687 List.137; + ret List.686; + +procedure List.6 (#Attr.2): + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; + +procedure List.70 (#Attr.2, #Attr.3): + let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.682; + +procedure List.71 (#Attr.2, #Attr.3): + let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.680; + +procedure List.8 (#Attr.2, #Attr.3): + let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.690; procedure Num.127 (#Attr.2): let Num.282 : 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 1d28e10f76..9c7bb9e82a 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 @@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.4 (List.132, List.133): - let List.660 : U64 = 1i64; - let List.659 : List U8 = CallByName List.70 List.132 List.660; - let List.658 : List U8 = CallByName List.71 List.659 List.133; - ret List.658; - -procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.70 (#Attr.2, #Attr.3): - let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.654; - -procedure List.71 (#Attr.2, #Attr.3): - let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.652; - -procedure List.8 (#Attr.2, #Attr.3): - let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.71 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.71 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.20; - jump List.641 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + jump List.669 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.4 (List.136, List.137): + let List.688 : U64 = 1i64; + let List.687 : List U8 = CallByName List.70 List.136 List.688; + let List.686 : List U8 = CallByName List.71 List.687 List.137; + ret List.686; + +procedure List.6 (#Attr.2): + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; + +procedure List.70 (#Attr.2, #Attr.3): + let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.682; + +procedure List.71 (#Attr.2, #Attr.3): + let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.680; + +procedure List.8 (#Attr.2, #Attr.3): + let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.690; procedure Num.127 (#Attr.2): let Num.282 : 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 b3048b08c0..a6734fb482 100644 --- a/crates/compiler/test_mono/generated/encode_derived_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_string.txt @@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.4 (List.132, List.133): - let List.648 : U64 = 1i64; - let List.647 : List U8 = CallByName List.70 List.132 List.648; - let List.646 : List U8 = CallByName List.71 List.647 List.133; - ret List.646; +procedure List.4 (List.136, List.137): + let List.676 : U64 = 1i64; + let List.675 : List U8 = CallByName List.70 List.136 List.676; + let List.674 : List U8 = CallByName List.71 List.675 List.137; + ret List.674; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.670 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.670; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.668 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.668; procedure List.8 (#Attr.2, #Attr.3): - let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.650; + let List.678 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.678; procedure Num.127 (#Attr.2): let Num.282 : 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 dc5bf310ad..8eb3d681ad 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 @@ -40,58 +40,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.13 (#Attr.2, #Attr.3): - let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.664; - -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.4 (List.132, List.133): - let List.660 : U64 = 1i64; - let List.659 : List U8 = CallByName List.70 List.132 List.660; - let List.658 : List U8 = CallByName List.71 List.659 List.133; - ret List.658; - -procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.70 (#Attr.2, #Attr.3): - let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.654; - -procedure List.71 (#Attr.2, #Attr.3): - let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.652; - -procedure List.8 (#Attr.2, #Attr.3): - let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Str = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Str = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.64 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.13; - jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + jump List.669 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + +procedure List.13 (#Attr.2, #Attr.3): + let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.692; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.4 (List.136, List.137): + let List.688 : U64 = 1i64; + let List.687 : List U8 = CallByName List.70 List.136 List.688; + let List.686 : List U8 = CallByName List.71 List.687 List.137; + ret List.686; + +procedure List.6 (#Attr.2): + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; + +procedure List.70 (#Attr.2, #Attr.3): + let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.682; + +procedure List.71 (#Attr.2, #Attr.3): + let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.680; + +procedure List.8 (#Attr.2, #Attr.3): + let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.690; procedure Num.127 (#Attr.2): let Num.282 : 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 9489341d1e..1cc70bcb15 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 @@ -43,58 +43,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; +procedure List.101 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Str = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.64 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.23; + jump List.669 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + procedure List.13 (#Attr.2, #Attr.3): - let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.664; + let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.692; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; -procedure List.4 (List.132, List.133): - let List.660 : U64 = 1i64; - let List.659 : List U8 = CallByName List.70 List.132 List.660; - let List.658 : List U8 = CallByName List.71 List.659 List.133; - ret List.658; +procedure List.4 (List.136, List.137): + let List.688 : U64 = 1i64; + let List.687 : List U8 = CallByName List.70 List.136 List.688; + let List.686 : List U8 = CallByName List.71 List.687 List.137; + ret List.686; procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure List.70 (#Attr.2, #Attr.3): - let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.654; + let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.682; procedure List.71 (#Attr.2, #Attr.3): - let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.652; + let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.680; procedure List.8 (#Attr.2, #Attr.3): - let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Str = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.14; - jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.690; procedure Num.127 (#Attr.2): let Num.282 : 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 2a5a71df4f..a53ca1da8f 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -304,7 +304,7 @@ procedure Dict.72 (Dict.412, Dict.413, Dict.414): let Dict.854 : {U64, U32} = CallByName Dict.73 Dict.412 Dict.417 Dict.416; ret Dict.854; -procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18): +procedure Dict.73 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23): joinpoint Dict.855 Dict.418 Dict.419 Dict.420: let Dict.421 : {U32, U32} = CallByName Dict.22 Dict.418 Dict.419; let Dict.862 : U32 = StructAtIndex 1 Dict.421; @@ -319,8 +319,8 @@ procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18): let Dict.856 : {U64, U32} = Struct {Dict.419, Dict.420}; ret Dict.856; in - inc #Derived_gen.16; - jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + inc #Derived_gen.21; + jump Dict.855 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): joinpoint Dict.761 Dict.422 Dict.423 Dict.424: @@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.11 (List.146, List.147): - let List.700 : List {U32, U32} = CallByName List.68 List.147; - let List.699 : List {U32, U32} = CallByName List.95 List.146 List.147 List.700; - ret List.699; +procedure List.101 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, I64} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.12; + jump List.669 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.57, #Derived_gen.58, #Derived_gen.59, #Derived_gen.60, #Derived_gen.61): + joinpoint List.733 List.175 List.176 List.177 List.178 List.179: + let List.735 : Int1 = CallByName Num.22 List.178 List.179; + if List.735 then + let List.739 : {Str, I64} = CallByName List.66 List.175 List.178; + inc List.739; + let List.180 : {Str, Int1} = CallByName Dict.188 List.176 List.739 List.177; + let List.738 : U64 = 1i64; + let List.737 : U64 = CallByName Num.51 List.178 List.738; + jump List.733 List.175 List.180 List.177 List.737 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.57; + jump List.733 #Derived_gen.57 #Derived_gen.58 #Derived_gen.59 #Derived_gen.60 #Derived_gen.61; -procedure List.18 (List.168, List.169, List.170): - let List.703 : U64 = 0i64; - let List.704 : U64 = CallByName List.6 List.168; - let List.702 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.703 List.704; - ret List.702; +procedure List.102 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35): + joinpoint List.708 List.184 List.185 List.186 List.187 List.188: + let List.710 : Int1 = CallByName Num.22 List.187 List.188; + if List.710 then + let List.714 : {Str, I64} = CallByName List.66 List.184 List.187; + inc List.714; + let List.189 : List {U32, U32} = CallByName Dict.406 List.185 List.714 List.187 List.186; + let List.713 : U64 = 1i64; + let List.712 : U64 = CallByName Num.51 List.187 List.713; + jump List.708 List.184 List.189 List.186 List.712 List.188; + else + dec List.184; + ret List.185; + in + inc #Derived_gen.31; + jump List.708 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35; -procedure List.3 (List.124, List.125, List.126): - let List.664 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.124 List.125 List.126; - let List.663 : List {U32, U32} = StructAtIndex 0 List.664; - ret List.663; +procedure List.11 (List.150, List.151): + let List.728 : List {U32, U32} = CallByName List.68 List.151; + let List.727 : List {U32, U32} = CallByName List.99 List.150 List.151 List.728; + ret List.727; -procedure List.3 (List.124, List.125, List.126): - let List.666 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.124 List.125 List.126; - let List.665 : List {Str, I64} = StructAtIndex 0 List.666; - let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.666; +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.18 (List.172, List.173, List.174): + let List.731 : U64 = 0i64; + let List.732 : U64 = CallByName List.6 List.172; + let List.730 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.731 List.732; + ret List.730; + +procedure List.3 (List.128, List.129, List.130): + let List.692 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.128 List.129 List.130; + let List.691 : List {U32, U32} = StructAtIndex 0 List.692; + ret List.691; + +procedure List.3 (List.128, List.129, List.130): + let List.694 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.128 List.129 List.130; + let List.693 : List {Str, I64} = StructAtIndex 0 List.694; + let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.694; dec #Derived_gen.71; - ret List.665; + ret List.693; -procedure List.4 (List.132, List.133): - let List.675 : U64 = 1i64; - let List.673 : List {Str, I64} = CallByName List.70 List.132 List.675; - let List.672 : List {Str, I64} = CallByName List.71 List.673 List.133; - ret List.672; +procedure List.4 (List.136, List.137): + let List.703 : U64 = 1i64; + let List.701 : List {Str, I64} = CallByName List.70 List.136 List.703; + let List.700 : List {Str, I64} = CallByName List.71 List.701 List.137; + ret List.700; procedure List.6 (#Attr.2): - let List.654 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.654; + let List.682 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.682; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.729 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.729; procedure List.6 (#Attr.2): - let List.713 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.713; + let List.741 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.741; -procedure List.64 (List.121, List.122, List.123): - let List.662 : U64 = CallByName List.6 List.121; - let List.659 : Int1 = CallByName Num.22 List.122 List.662; - if List.659 then - let List.660 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.121 List.122 List.123; - ret List.660; +procedure List.64 (List.125, List.126, List.127): + let List.690 : U64 = CallByName List.6 List.125; + let List.687 : Int1 = CallByName Num.22 List.126 List.690; + if List.687 then + let List.688 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.125 List.126 List.127; + ret List.688; else - let List.658 : {List {U32, U32}, {U32, U32}} = Struct {List.121, List.123}; - ret List.658; + let List.686 : {List {U32, U32}, {U32, U32}} = Struct {List.125, List.127}; + ret List.686; -procedure List.64 (List.121, List.122, List.123): - let List.671 : U64 = CallByName List.6 List.121; - let List.668 : Int1 = CallByName Num.22 List.122 List.671; - if List.668 then - let List.669 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.121 List.122 List.123; - ret List.669; +procedure List.64 (List.125, List.126, List.127): + let List.699 : U64 = CallByName List.6 List.125; + let List.696 : Int1 = CallByName Num.22 List.126 List.699; + if List.696 then + let List.697 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.125 List.126 List.127; + ret List.697; else - let List.667 : {List {Str, I64}, {Str, I64}} = Struct {List.121, List.123}; - ret List.667; + let List.695 : {List {Str, I64}, {Str, I64}} = Struct {List.125, List.127}; + ret List.695; procedure List.66 (#Attr.2, #Attr.3): - let List.712 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.712; + let List.740 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.740; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.661 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.661; + let List.689 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.689; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.670 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.670; - -procedure List.68 (#Attr.2): - let List.698 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + let List.698 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; ret List.698; +procedure List.68 (#Attr.2): + let List.726 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.726; + procedure List.70 (#Attr.2, #Attr.3): - let List.676 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.676; + let List.704 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.704; procedure List.71 (#Attr.2, #Attr.3): - let List.674 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.674; + let List.702 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.702; procedure List.71 (#Attr.2, #Attr.3): - let List.695 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.695; + let List.723 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.723; -procedure List.83 (List.177, List.178, List.179): - let List.678 : U64 = 0i64; - let List.679 : U64 = CallByName List.6 List.177; - let List.677 : List {U32, U32} = CallByName List.98 List.177 List.178 List.179 List.678 List.679; - ret List.677; +procedure List.83 (List.181, List.182, List.183): + let List.706 : U64 = 0i64; + let List.707 : U64 = CallByName List.6 List.181; + let List.705 : List {U32, U32} = CallByName List.102 List.181 List.182 List.183 List.706 List.707; + ret List.705; -procedure List.95 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39): - joinpoint List.689 List.148 List.149 List.150: - let List.697 : U64 = 0i64; - let List.691 : Int1 = CallByName Num.24 List.149 List.697; - if List.691 then - let List.696 : U64 = 1i64; - let List.693 : U64 = CallByName Num.75 List.149 List.696; - let List.694 : List {U32, U32} = CallByName List.71 List.150 List.148; - jump List.689 List.148 List.693 List.694; +procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28): + joinpoint List.717 List.152 List.153 List.154: + let List.725 : U64 = 0i64; + let List.719 : Int1 = CallByName Num.24 List.153 List.725; + if List.719 then + let List.724 : U64 = 1i64; + let List.721 : U64 = CallByName Num.75 List.153 List.724; + let List.722 : List {U32, U32} = CallByName List.71 List.154 List.152; + jump List.717 List.152 List.721 List.722; else - ret List.150; + ret List.154; in - jump List.689 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; - -procedure List.97 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, I64} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.26; - jump List.641 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; - -procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.705 List.171 List.172 List.173 List.174 List.175: - let List.707 : Int1 = CallByName Num.22 List.174 List.175; - if List.707 then - let List.711 : {Str, I64} = CallByName List.66 List.171 List.174; - inc List.711; - let List.176 : {Str, Int1} = CallByName Dict.188 List.172 List.711 List.173; - let List.710 : U64 = 1i64; - let List.709 : U64 = CallByName Num.51 List.174 List.710; - jump List.705 List.171 List.176 List.173 List.709 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.40; - jump List.705 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; - -procedure List.98 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65): - joinpoint List.680 List.180 List.181 List.182 List.183 List.184: - let List.682 : Int1 = CallByName Num.22 List.183 List.184; - if List.682 then - let List.686 : {Str, I64} = CallByName List.66 List.180 List.183; - inc List.686; - let List.185 : List {U32, U32} = CallByName Dict.406 List.181 List.686 List.183 List.182; - let List.685 : U64 = 1i64; - let List.684 : U64 = CallByName Num.51 List.183 List.685; - jump List.680 List.180 List.185 List.182 List.684 List.184; - else - dec List.180; - ret List.181; - in - inc #Derived_gen.61; - jump List.680 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; + jump List.717 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28; procedure Num.131 (#Attr.2): let Num.289 : 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 527ddb6781..b345f92a8d 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -135,35 +135,35 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : I64 = CallByName List.66 List.175 List.178; + let List.180 : {Str, Int1} = CallByName Inspect.160 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.11; + jump List.669 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : I64 = CallByName List.66 List.171 List.174; - let List.176 : {Str, Int1} = CallByName Inspect.160 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.8; - jump List.641 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; + let List.676 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; 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/inspect_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt index 3ce47156b5..9f0abfdacf 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 @@ -221,67 +221,67 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.681 List.175 List.176 List.177 List.178 List.179: + let List.683 : Int1 = CallByName Num.22 List.178 List.179; + if List.683 then + let List.687 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.687; + let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.687; + let List.686 : U64 = 1i64; + let List.685 : U64 = CallByName Num.51 List.178 List.686; + jump List.681 List.175 List.180 List.177 List.685 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.26; + jump List.681 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; -procedure List.18 (List.168, List.169, List.170): - let List.651 : U64 = 0i64; - let List.652 : U64 = CallByName List.6 List.168; - let List.650 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.651 List.652; - ret List.650; +procedure List.101 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.43; + jump List.669 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.18 (List.172, List.173, List.174): + let List.679 : U64 = 0i64; + let List.680 : U64 = CallByName List.6 List.172; + let List.678 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.679 List.680; + ret List.678; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.6 (#Attr.2): - let List.661 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.661; + let List.689 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.689; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.660 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.660; - -procedure List.97 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.28; - jump List.641 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32; - -procedure List.97 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): - joinpoint List.653 List.171 List.172 List.173 List.174 List.175: - let List.655 : Int1 = CallByName Num.22 List.174 List.175; - if List.655 then - let List.659 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.659; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.659; - let List.658 : U64 = 1i64; - let List.657 : U64 = CallByName Num.51 List.174 List.658; - jump List.653 List.171 List.176 List.173 List.657 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.33; - jump List.653 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; + let List.688 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.688; 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.txt b/crates/compiler/test_mono/generated/inspect_derived_record.txt index b192badc25..6fd250e85e 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -161,36 +161,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {[C I64, C Decimal], Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.26; + jump List.669 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {[C I64, C Decimal], Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.14; - jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + let List.676 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; 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_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt index c4be914f51..b98b67c722 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 @@ -139,36 +139,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.16; + jump List.669 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.12; - jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 d8538c981e..bfb8b2d9c7 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 @@ -146,36 +146,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.20; + jump List.669 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : {Str, Str} = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.16; - jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 395793d653..ec0144e6f5 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 @@ -132,43 +132,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.115): - let List.651 : U64 = CallByName List.6 List.115; - let List.652 : U64 = 0i64; - let List.650 : Int1 = CallByName Bool.11 List.651 List.652; - ret List.650; +procedure List.1 (List.119): + let List.679 : U64 = CallByName List.6 List.119; + let List.680 : U64 = 0i64; + let List.678 : Int1 = CallByName Bool.11 List.679 List.680; + ret List.678; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.101 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Str = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : Str = CallByName Inspect.210 List.176 List.675; + dec List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.14; + jump List.669 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : Str = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Str = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : Str = CallByName Inspect.210 List.172 List.647; - dec List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.10; - jump List.641 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; + let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 3a706e8fe7..9b9f4b0112 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 @@ -135,43 +135,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.115): - let List.651 : U64 = CallByName List.6 List.115; - let List.652 : U64 = 0i64; - let List.650 : Int1 = CallByName Bool.11 List.651 List.652; - ret List.650; +procedure List.1 (List.119): + let List.679 : U64 = CallByName List.6 List.119; + let List.680 : U64 = 0i64; + let List.678 : Int1 = CallByName Bool.11 List.679 List.680; + ret List.678; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Str = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : Str = CallByName Inspect.210 List.172 List.647; - dec List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Str = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : Str = CallByName Inspect.210 List.176 List.675; + dec List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.15; - jump List.641 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19; + jump List.669 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : Str = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.6 (#Attr.2): + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 f5c0724fdd..b11ba49d9f 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.638 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.638; + 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/issue_2583_specialize_errors_behind_unified_branches.txt b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt index 405c33385f..8b05775b70 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 @@ -6,40 +6,40 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.2 (List.116, List.117): - let List.652 : U64 = CallByName List.6 List.116; - let List.648 : Int1 = CallByName Num.22 List.117 List.652; - if List.648 then - let List.650 : I64 = CallByName List.66 List.116 List.117; - let List.649 : [C {}, C I64] = TagId(1) List.650; - ret List.649; +procedure List.2 (List.120, List.121): + let List.680 : U64 = CallByName List.6 List.120; + let List.676 : Int1 = CallByName Num.22 List.121 List.680; + if List.676 then + let List.678 : I64 = CallByName List.66 List.120 List.121; + let List.677 : [C {}, C I64] = TagId(1) List.678; + ret List.677; else - let List.647 : {} = Struct {}; - let List.646 : [C {}, C I64] = TagId(0) List.647; - ret List.646; + let List.675 : {} = Struct {}; + let List.674 : [C {}, C I64] = TagId(0) List.675; + ret List.674; procedure List.6 (#Attr.2): - let List.653 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.653; + let List.681 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.681; procedure List.66 (#Attr.2, #Attr.3): - let List.651 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; + let List.679 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; -procedure List.9 (List.388): - let List.645 : U64 = 0i64; - let List.638 : [C {}, C I64] = CallByName List.2 List.388 List.645; - let List.642 : U8 = 1i64; - let List.643 : U8 = GetTagId List.638; - let List.644 : Int1 = lowlevel Eq List.642 List.643; - if List.644 then - let List.389 : I64 = UnionAtIndex (Id 1) (Index 0) List.638; - let List.639 : [C Int1, C I64] = TagId(1) List.389; - ret List.639; +procedure List.9 (List.392): + let List.673 : U64 = 0i64; + let List.666 : [C {}, C I64] = CallByName List.2 List.392 List.673; + let List.670 : U8 = 1i64; + let List.671 : U8 = GetTagId List.666; + let List.672 : Int1 = lowlevel Eq List.670 List.671; + if List.672 then + let List.393 : I64 = UnionAtIndex (Id 1) (Index 0) List.666; + let List.667 : [C Int1, C I64] = TagId(1) List.393; + ret List.667; else - let List.641 : Int1 = true; - let List.640 : [C Int1, C I64] = TagId(0) List.641; - ret List.640; + let List.669 : Int1 = true; + let List.668 : [C Int1, C I64] = TagId(0) List.669; + ret List.668; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 b4a1040fc8..baf409503b 100644 --- a/crates/compiler/test_mono/generated/issue_4770.txt +++ b/crates/compiler/test_mono/generated/issue_4770.txt @@ -6,118 +6,118 @@ procedure Bool.2 (): let Bool.24 : Int1 = true; ret Bool.24; -procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.676 List.287 List.288 List.289 List.290 List.291 List.292: - let List.678 : Int1 = CallByName Num.22 List.291 List.292; - if List.678 then - let List.684 : [C I64, C List *self] = CallByName List.66 List.287 List.291; - inc List.684; - let List.685 : [C I64, C List *self] = CallByName List.66 List.288 List.291; - inc List.685; - let List.293 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.684 List.685; - let List.680 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.289 List.293; - let List.682 : U64 = 1i64; - let List.681 : U64 = CallByName Num.51 List.291 List.682; - jump List.676 List.287 List.288 List.680 List.290 List.681 List.292; +procedure List.106 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6): + joinpoint List.704 List.291 List.292 List.293 List.294 List.295 List.296: + let List.706 : Int1 = CallByName Num.22 List.295 List.296; + if List.706 then + let List.712 : [C I64, C List *self] = CallByName List.66 List.291 List.295; + inc List.712; + let List.713 : [C I64, C List *self] = CallByName List.66 List.292 List.295; + inc List.713; + let List.297 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.712 List.713; + let List.708 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.293 List.297; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.295 List.710; + jump List.704 List.291 List.292 List.708 List.294 List.709 List.296; else - dec List.287; - dec List.288; - ret List.289; + dec List.291; + dec List.292; + ret List.293; in - inc #Derived_gen.0; inc #Derived_gen.1; - jump List.676 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + inc #Derived_gen.2; + jump List.704 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6; -procedure List.112 (List.541, List.542, List.543): - let List.652 : U64 = 0i64; - let List.653 : U64 = CallByName List.6 List.541; - let List.651 : [C {}, C {}] = CallByName List.80 List.541 List.542 List.543 List.652 List.653; - ret List.651; +procedure List.116 (List.569, List.570, List.571): + let List.680 : U64 = 0i64; + let List.681 : U64 = CallByName List.6 List.569; + let List.679 : [C {}, C {}] = CallByName List.80 List.569 List.570 List.571 List.680 List.681; + ret List.679; -procedure List.23 (List.283, List.284, List.285): - let List.688 : U64 = CallByName List.6 List.283; - let List.689 : U64 = CallByName List.6 List.284; - let List.286 : U64 = CallByName Num.148 List.688 List.689; - let List.674 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.286; - let List.675 : U64 = 0i64; - let List.673 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.102 List.283 List.284 List.674 List.285 List.675 List.286; - ret List.673; +procedure List.23 (List.287, List.288, List.289): + let List.716 : U64 = CallByName List.6 List.287; + let List.717 : U64 = CallByName List.6 List.288; + let List.290 : U64 = CallByName Num.148 List.716 List.717; + let List.702 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.290; + let List.703 : U64 = 0i64; + let List.701 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.106 List.287 List.288 List.702 List.289 List.703 List.290; + ret List.701; -procedure List.244 (List.640, List.245, List.243): - let List.670 : Int1 = CallByName Test.1 List.245; - if List.670 then - let List.672 : {} = Struct {}; - let List.671 : [C {}, C {}] = TagId(1) List.672; +procedure List.248 (List.668, List.249, List.247): + let List.698 : Int1 = CallByName Test.1 List.249; + if List.698 then + let List.700 : {} = Struct {}; + let List.699 : [C {}, C {}] = TagId(1) List.700; + ret List.699; + else + let List.697 : {} = Struct {}; + let List.696 : [C {}, C {}] = TagId(0) List.697; + ret List.696; + +procedure List.56 (List.246, List.247): + let List.677 : {} = Struct {}; + let List.669 : [C {}, C {}] = CallByName List.116 List.246 List.677 List.247; + let List.674 : U8 = 1i64; + let List.675 : U8 = GetTagId List.669; + let List.676 : Int1 = lowlevel Eq List.674 List.675; + if List.676 then + let List.670 : Int1 = CallByName Bool.2; + ret List.670; + else + let List.671 : Int1 = CallByName Bool.1; ret List.671; - else - let List.669 : {} = Struct {}; - let List.668 : [C {}, C {}] = TagId(0) List.669; - ret List.668; - -procedure List.56 (List.242, List.243): - let List.649 : {} = Struct {}; - let List.641 : [C {}, C {}] = CallByName List.112 List.242 List.649 List.243; - let List.646 : U8 = 1i64; - let List.647 : U8 = GetTagId List.641; - let List.648 : Int1 = lowlevel Eq List.646 List.647; - if List.648 then - let List.642 : Int1 = CallByName Bool.2; - ret List.642; - else - let List.643 : Int1 = CallByName Bool.1; - ret List.643; - -procedure List.6 (#Attr.2): - let List.639 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.639; procedure List.6 (#Attr.2): let List.667 : U64 = lowlevel ListLenU64 #Attr.2; ret List.667; -procedure List.66 (#Attr.2, #Attr.3): - let List.666 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.666; +procedure List.6 (#Attr.2): + let List.695 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.695; procedure List.66 (#Attr.2, #Attr.3): - let List.686 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.686; + let List.694 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.694; + +procedure List.66 (#Attr.2, #Attr.3): + let List.714 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.714; procedure List.68 (#Attr.2): - let List.687 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; - ret List.687; + let List.715 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.715; procedure List.71 (#Attr.2, #Attr.3): - let List.683 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.683; + let List.711 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.711; procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.654 List.544 List.545 List.546 List.547 List.548: - let List.656 : Int1 = CallByName Num.22 List.547 List.548; - if List.656 then - let List.665 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.544 List.547; - inc List.665; - let List.657 : [C {}, C {}] = CallByName List.244 List.545 List.665 List.546; - let List.662 : U8 = 1i64; - let List.663 : U8 = GetTagId List.657; - let List.664 : Int1 = lowlevel Eq List.662 List.663; - if List.664 then - let List.549 : {} = UnionAtIndex (Id 1) (Index 0) List.657; - let List.660 : U64 = 1i64; - let List.659 : U64 = CallByName Num.51 List.547 List.660; - jump List.654 List.544 List.549 List.546 List.659 List.548; + joinpoint List.682 List.572 List.573 List.574 List.575 List.576: + let List.684 : Int1 = CallByName Num.22 List.575 List.576; + if List.684 then + let List.693 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.572 List.575; + inc List.693; + let List.685 : [C {}, C {}] = CallByName List.248 List.573 List.693 List.574; + let List.690 : U8 = 1i64; + let List.691 : U8 = GetTagId List.685; + let List.692 : Int1 = lowlevel Eq List.690 List.691; + if List.692 then + let List.577 : {} = UnionAtIndex (Id 1) (Index 0) List.685; + let List.688 : U64 = 1i64; + let List.687 : U64 = CallByName Num.51 List.575 List.688; + jump List.682 List.572 List.577 List.574 List.687 List.576; else - dec List.544; - let List.550 : {} = UnionAtIndex (Id 0) (Index 0) List.657; - let List.661 : [C {}, C {}] = TagId(0) List.550; - ret List.661; + dec List.572; + let List.578 : {} = UnionAtIndex (Id 0) (Index 0) List.685; + let List.689 : [C {}, C {}] = TagId(0) List.578; + ret List.689; else - dec List.544; - let List.655 : [C {}, C {}] = TagId(1) List.545; - ret List.655; + dec List.572; + let List.683 : [C {}, C {}] = TagId(1) List.573; + ret List.683; in inc #Derived_gen.7; - jump List.654 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + jump List.682 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; procedure Num.148 (Num.225, Num.226): let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226; @@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3): let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3; ret Num.284; -procedure Test.1 (#Derived_gen.6): +procedure Test.1 (#Derived_gen.0): joinpoint Test.26 Test.6: let Test.65 : [C I64, C List *self] = StructAtIndex 1 Test.6; let Test.66 : U8 = 0i64; @@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.6): let Test.44 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.45, Test.46}; jump Test.26 Test.44; in - jump Test.26 #Derived_gen.6; + jump Test.26 #Derived_gen.0; procedure Test.15 (Test.16, Test.17): let Test.36 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.16, Test.17}; 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 cffc285124..7ee4570646 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.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : [, C {[C *self, ], *self}] = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.6 (#Attr.2): - let List.649 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.649; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : [C *self, ] = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : [, C {[C *self, ], *self}] = CallByName Test.7 List.172 List.647; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : [C *self, ] = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : [, C {[C *self, ], *self}] = CallByName Test.7 List.176 List.675; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.0; - jump List.641 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.669 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : [, C {[C *self, ], *self}] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.6 (#Attr.2): + let List.677 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.677; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 31c459d494..45011522c9 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.132, List.133): - let List.641 : U64 = 1i64; - let List.639 : List I64 = CallByName List.70 List.132 List.641; - let List.638 : List I64 = CallByName List.71 List.639 List.133; - ret List.638; +procedure List.4 (List.136, List.137): + let List.669 : U64 = 1i64; + let List.667 : List I64 = CallByName List.70 List.136 List.669; + let List.666 : List I64 = CallByName List.71 List.667 List.137; + ret List.666; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.670 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.670; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.668 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.668; 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 45f42cbc51..e7eb8eaae3 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.132, List.133): - let List.641 : U64 = 1i64; - let List.639 : List I64 = CallByName List.70 List.132 List.641; - let List.638 : List I64 = CallByName List.71 List.639 List.133; - ret List.638; +procedure List.4 (List.136, List.137): + let List.669 : U64 = 1i64; + let List.667 : List I64 = CallByName List.70 List.136 List.669; + let List.666 : List I64 = CallByName List.71 List.667 List.137; + ret List.666; procedure List.70 (#Attr.2, #Attr.3): - let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.642; + let List.670 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.670; procedure List.71 (#Attr.2, #Attr.3): - let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.640; + let List.668 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.668; 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 b02f2238ba..d6f5d47bf9 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.124, List.125, List.126): - let List.641 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.640 : List I64 = StructAtIndex 0 List.641; - ret List.640; +procedure List.3 (List.128, List.129, List.130): + let List.669 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; + let List.668 : List I64 = StructAtIndex 0 List.669; + ret List.668; procedure List.6 (#Attr.2): - let List.639 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.639; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; -procedure List.64 (List.121, List.122, List.123): - let List.646 : U64 = CallByName List.6 List.121; - let List.643 : Int1 = CallByName Num.22 List.122 List.646; - if List.643 then - let List.644 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.644; +procedure List.64 (List.125, List.126, List.127): + let List.674 : U64 = CallByName List.6 List.125; + let List.671 : Int1 = CallByName Num.22 List.126 List.674; + if List.671 then + let List.672 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; + ret List.672; else - let List.642 : {List I64, I64} = Struct {List.121, List.123}; - ret List.642; + let List.670 : {List I64, I64} = Struct {List.125, List.127}; + ret List.670; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.645 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.645; + let List.673 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.673; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 09fac120b2..0f2234e876 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.116, List.117): - let List.644 : U64 = CallByName List.6 List.116; - let List.640 : Int1 = CallByName Num.22 List.117 List.644; - if List.640 then - let List.642 : I64 = CallByName List.66 List.116 List.117; - let List.641 : [C {}, C I64] = TagId(1) List.642; - ret List.641; +procedure List.2 (List.120, List.121): + let List.672 : U64 = CallByName List.6 List.120; + let List.668 : Int1 = CallByName Num.22 List.121 List.672; + if List.668 then + let List.670 : I64 = CallByName List.66 List.120 List.121; + let List.669 : [C {}, C I64] = TagId(1) List.670; + ret List.669; else - let List.639 : {} = Struct {}; - let List.638 : [C {}, C I64] = TagId(0) List.639; - ret List.638; + let List.667 : {} = Struct {}; + let List.666 : [C {}, C I64] = TagId(0) List.667; + ret List.666; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.671 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.671; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 770cb40aa2..e5f481c5d1 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.638 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.638; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.6 (#Attr.2): - let List.639 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.639; + let List.667 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.667; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 3ab53785d7..0744d83605 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.18 (List.168, List.169, List.170): - let List.650 : U64 = 0i64; - let List.651 : U64 = CallByName List.6 List.168; - let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651; - ret List.649; +procedure List.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.680 List.175 List.176 List.177 List.178 List.179: + let List.682 : Int1 = CallByName Num.22 List.178 List.179; + if List.682 then + let List.686 : Str = CallByName List.66 List.175 List.178; + inc List.686; + let List.180 : List Str = CallByName List.284 List.176 List.686 List.177; + dec List.686; + let List.685 : U64 = 1i64; + let List.684 : U64 = CallByName Num.51 List.178 List.685; + jump List.680 List.175 List.180 List.177 List.684 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.3; + jump List.680 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; -procedure List.2 (List.116, List.117): - let List.644 : U64 = CallByName List.6 List.116; - let List.640 : Int1 = CallByName Num.22 List.117 List.644; - if List.640 then - let List.642 : Str = CallByName List.66 List.116 List.117; - inc List.642; - let List.641 : [C {}, C Str] = TagId(1) List.642; - ret List.641; +procedure List.18 (List.172, List.173, List.174): + let List.678 : U64 = 0i64; + let List.679 : U64 = CallByName List.6 List.172; + let List.677 : List Str = CallByName List.101 List.172 List.173 List.174 List.678 List.679; + ret List.677; + +procedure List.2 (List.120, List.121): + let List.672 : U64 = CallByName List.6 List.120; + let List.668 : Int1 = CallByName Num.22 List.121 List.672; + if List.668 then + let List.670 : Str = CallByName List.66 List.120 List.121; + inc List.670; + let List.669 : [C {}, C Str] = TagId(1) List.670; + ret List.669; else - let List.639 : {} = Struct {}; - let List.638 : [C {}, C Str] = TagId(0) List.639; - ret List.638; + let List.667 : {} = Struct {}; + let List.666 : [C {}, C Str] = TagId(0) List.667; + ret List.666; -procedure List.280 (List.281, List.282, List.278): - let List.661 : Str = CallByName Test.3 List.282; - let List.660 : List Str = CallByName List.71 List.281 List.661; - ret List.660; +procedure List.284 (List.285, List.286, List.282): + let List.689 : Str = CallByName Test.3 List.286; + let List.688 : List Str = CallByName List.71 List.285 List.689; + ret List.688; -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.647 : List Str = CallByName List.68 List.279; - let List.646 : List Str = CallByName List.18 List.277 List.647 List.278; - ret List.646; +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.675 : List Str = CallByName List.68 List.283; + let List.674 : List Str = CallByName List.18 List.281 List.675 List.282; + ret List.674; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; + let List.671 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.671; procedure List.68 (#Attr.2): - let List.663 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.663; + let List.691 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.691; procedure List.71 (#Attr.2, #Attr.3): - let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.652 List.171 List.172 List.173 List.174 List.175: - let List.654 : Int1 = CallByName Num.22 List.174 List.175; - if List.654 then - let List.658 : Str = CallByName List.66 List.171 List.174; - inc List.658; - let List.176 : List Str = CallByName List.280 List.172 List.658 List.173; - dec List.658; - let List.657 : U64 = 1i64; - let List.656 : U64 = CallByName Num.51 List.174 List.657; - jump List.652 List.171 List.176 List.173 List.656 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.0; - jump List.652 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + let List.690 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.690; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 09aec19244..ab29929666 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.18 (List.168, List.169, List.170): - let List.650 : U64 = 0i64; - let List.651 : U64 = CallByName List.6 List.168; - let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651; - ret List.649; - -procedure List.2 (List.116, List.117): - let List.644 : U64 = CallByName List.6 List.116; - let List.640 : Int1 = CallByName Num.22 List.117 List.644; - if List.640 then - let List.642 : Str = CallByName List.66 List.116 List.117; - inc List.642; - let List.641 : [C {}, C Str] = TagId(1) List.642; - ret List.641; - else - let List.639 : {} = Struct {}; - let List.638 : [C {}, C Str] = TagId(0) List.639; - ret List.638; - -procedure List.280 (List.281, List.282, List.278): - let List.661 : Str = CallByName Test.3 List.282; - let List.660 : List Str = CallByName List.71 List.281 List.661; - ret List.660; - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.647 : List Str = CallByName List.68 List.279; - let List.646 : List Str = CallByName List.18 List.277 List.647 List.278; - ret List.646; - -procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; - -procedure List.66 (#Attr.2, #Attr.3): - let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.643; - -procedure List.68 (#Attr.2): - let List.663 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.663; - -procedure List.71 (#Attr.2, #Attr.3): - let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.652 List.171 List.172 List.173 List.174 List.175: - let List.654 : Int1 = CallByName Num.22 List.174 List.175; - if List.654 then - let List.658 : Str = CallByName List.66 List.171 List.174; - inc List.658; - let List.176 : List Str = CallByName List.280 List.172 List.658 List.173; - let List.657 : U64 = 1i64; - let List.656 : U64 = CallByName Num.51 List.174 List.657; - jump List.652 List.171 List.176 List.173 List.656 List.175; +procedure List.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): + joinpoint List.680 List.175 List.176 List.177 List.178 List.179: + let List.682 : Int1 = CallByName Num.22 List.178 List.179; + if List.682 then + let List.686 : Str = CallByName List.66 List.175 List.178; + inc List.686; + let List.180 : List Str = CallByName List.284 List.176 List.686 List.177; + let List.685 : U64 = 1i64; + let List.684 : U64 = CallByName Num.51 List.178 List.685; + jump List.680 List.175 List.180 List.177 List.684 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.3; - jump List.652 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + jump List.680 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + +procedure List.18 (List.172, List.173, List.174): + let List.678 : U64 = 0i64; + let List.679 : U64 = CallByName List.6 List.172; + let List.677 : List Str = CallByName List.101 List.172 List.173 List.174 List.678 List.679; + ret List.677; + +procedure List.2 (List.120, List.121): + let List.672 : U64 = CallByName List.6 List.120; + let List.668 : Int1 = CallByName Num.22 List.121 List.672; + if List.668 then + let List.670 : Str = CallByName List.66 List.120 List.121; + inc List.670; + let List.669 : [C {}, C Str] = TagId(1) List.670; + ret List.669; + else + let List.667 : {} = Struct {}; + let List.666 : [C {}, C Str] = TagId(0) List.667; + ret List.666; + +procedure List.284 (List.285, List.286, List.282): + let List.689 : Str = CallByName Test.3 List.286; + let List.688 : List Str = CallByName List.71 List.285 List.689; + ret List.688; + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.675 : List Str = CallByName List.68 List.283; + let List.674 : List Str = CallByName List.18 List.281 List.675 List.282; + ret List.674; + +procedure List.6 (#Attr.2): + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; + +procedure List.66 (#Attr.2, #Attr.3): + let List.671 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.671; + +procedure List.68 (#Attr.2): + let List.691 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.691; + +procedure List.71 (#Attr.2, #Attr.3): + let List.690 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.690; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 efa9dd5730..5ae1005b54 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.18 (List.168, List.169, List.170): - let List.642 : U64 = 0i64; - let List.643 : U64 = CallByName List.6 List.168; - let List.641 : List U8 = CallByName List.97 List.168 List.169 List.170 List.642 List.643; - ret List.641; - -procedure List.280 (List.281, List.282, List.278): - let List.657 : U8 = GetTagId List.278; - joinpoint List.658 List.655: - let List.654 : List U8 = CallByName List.71 List.281 List.655; - ret List.654; - in - switch List.657: - case 0: - let List.659 : U8 = CallByName Test.4 List.282 List.278; - jump List.658 List.659; - - case 1: - let List.659 : U8 = CallByName Test.6 List.282 List.278; - jump List.658 List.659; - - default: - let List.659 : U8 = CallByName Test.8 List.282; - jump List.658 List.659; - - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.639 : List U8 = CallByName List.68 List.279; - let List.638 : List U8 = CallByName List.18 List.277 List.639 List.278; - ret List.638; - -procedure List.6 (#Attr.2): - let List.652 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.652; - -procedure List.66 (#Attr.2, #Attr.3): - let List.651 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; - -procedure List.68 (#Attr.2): - let List.660 : List U8 = lowlevel ListWithCapacity #Attr.2; - ret List.660; - -procedure List.71 (#Attr.2, #Attr.3): - let List.656 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.656; - -procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.644 List.171 List.172 List.173 List.174 List.175: - let List.646 : Int1 = CallByName Num.22 List.174 List.175; - if List.646 then - let List.650 : U8 = CallByName List.66 List.171 List.174; - let List.176 : List U8 = CallByName List.280 List.172 List.650 List.173; - let List.649 : U64 = 1i64; - let List.648 : U64 = CallByName Num.51 List.174 List.649; - jump List.644 List.171 List.176 List.173 List.648 List.175; +procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): + joinpoint List.672 List.175 List.176 List.177 List.178 List.179: + let List.674 : Int1 = CallByName Num.22 List.178 List.179; + if List.674 then + let List.678 : U8 = CallByName List.66 List.175 List.178; + let List.180 : List U8 = CallByName List.284 List.176 List.678 List.177; + let List.677 : U64 = 1i64; + let List.676 : U64 = CallByName Num.51 List.178 List.677; + jump List.672 List.175 List.180 List.177 List.676 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.0; - jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + +procedure List.18 (List.172, List.173, List.174): + let List.670 : U64 = 0i64; + let List.671 : U64 = CallByName List.6 List.172; + let List.669 : List U8 = CallByName List.101 List.172 List.173 List.174 List.670 List.671; + ret List.669; + +procedure List.284 (List.285, List.286, List.282): + let List.685 : U8 = GetTagId List.282; + joinpoint List.686 List.683: + let List.682 : List U8 = CallByName List.71 List.285 List.683; + ret List.682; + in + switch List.685: + case 0: + let List.687 : U8 = CallByName Test.4 List.286 List.282; + jump List.686 List.687; + + case 1: + let List.687 : U8 = CallByName Test.6 List.286 List.282; + jump List.686 List.687; + + default: + let List.687 : U8 = CallByName Test.8 List.286; + jump List.686 List.687; + + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.667 : List U8 = CallByName List.68 List.283; + let List.666 : List U8 = CallByName List.18 List.281 List.667 List.282; + ret List.666; + +procedure List.6 (#Attr.2): + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; + +procedure List.66 (#Attr.2, #Attr.3): + let List.679 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; + +procedure List.68 (#Attr.2): + let List.688 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.688; + +procedure List.71 (#Attr.2, #Attr.3): + let List.684 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.684; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : 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 61f325b670..d7a359764d 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.124, List.125, List.126): - let List.639 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.638 : List I64 = StructAtIndex 0 List.639; - ret List.638; +procedure List.3 (List.128, List.129, List.130): + let List.667 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; + let List.666 : List I64 = StructAtIndex 0 List.667; + ret List.666; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; -procedure List.64 (List.121, List.122, List.123): - let List.644 : U64 = CallByName List.6 List.121; - let List.641 : Int1 = CallByName Num.22 List.122 List.644; - if List.641 then - let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.642; +procedure List.64 (List.125, List.126, List.127): + let List.672 : U64 = CallByName List.6 List.125; + let List.669 : Int1 = CallByName Num.22 List.126 List.672; + if List.669 then + let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; + ret List.670; else - let List.640 : {List I64, I64} = Struct {List.121, List.123}; - ret List.640; + let List.668 : {List I64, I64} = Struct {List.125, List.127}; + ret List.668; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.643; + let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.671; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 06c975d33b..67654d1846 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.640 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.640; + let List.668 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.668; -procedure List.59 (List.383): - let List.639 : {} = Struct {}; - let List.638 : List I64 = CallByName List.28 List.383 List.639; - ret List.638; +procedure List.59 (List.387): + let List.667 : {} = Struct {}; + let List.666 : List I64 = CallByName List.28 List.387 List.667; + ret List.666; procedure Num.46 (#Attr.2, #Attr.3): let Num.281 : 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 b07a0dbb46..4254033309 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.116, List.117): - let List.660 : U64 = CallByName List.6 List.116; - let List.657 : Int1 = CallByName Num.22 List.117 List.660; - if List.657 then - let List.659 : I64 = CallByName List.66 List.116 List.117; - let List.658 : [C {}, C I64] = TagId(1) List.659; - ret List.658; +procedure List.2 (List.120, List.121): + let List.688 : U64 = CallByName List.6 List.120; + let List.685 : Int1 = CallByName Num.22 List.121 List.688; + if List.685 then + let List.687 : I64 = CallByName List.66 List.120 List.121; + let List.686 : [C {}, C I64] = TagId(1) List.687; + ret List.686; else - let List.656 : {} = Struct {}; - let List.655 : [C {}, C I64] = TagId(0) List.656; - ret List.655; + let List.684 : {} = Struct {}; + let List.683 : [C {}, C I64] = TagId(0) List.684; + ret List.683; -procedure List.3 (List.124, List.125, List.126): - let List.647 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.646 : List I64 = StructAtIndex 0 List.647; - ret List.646; +procedure List.3 (List.128, List.129, List.130): + let List.675 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; + let List.674 : List I64 = StructAtIndex 0 List.675; + ret List.674; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; -procedure List.64 (List.121, List.122, List.123): - let List.644 : U64 = CallByName List.6 List.121; - let List.641 : Int1 = CallByName Num.22 List.122 List.644; - if List.641 then - let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.642; +procedure List.64 (List.125, List.126, List.127): + let List.672 : U64 = CallByName List.6 List.125; + let List.669 : Int1 = CallByName Num.22 List.126 List.672; + if List.669 then + let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; + ret List.670; else - let List.640 : {List I64, I64} = Struct {List.121, List.123}; - ret List.640; + let List.668 : {List I64, I64} = Struct {List.125, List.127}; + ret List.668; procedure List.66 (#Attr.2, #Attr.3): - let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.653; + let List.681 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.681; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.643; + let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.671; 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/record_update.txt b/crates/compiler/test_mono/generated/record_update.txt index e65fada0c9..bf2c58ce44 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.124, List.125, List.126): - let List.647 : {List U64, U64} = CallByName List.64 List.124 List.125 List.126; - let List.646 : List U64 = StructAtIndex 0 List.647; - ret List.646; +procedure List.3 (List.128, List.129, List.130): + let List.675 : {List U64, U64} = CallByName List.64 List.128 List.129 List.130; + let List.674 : List U64 = StructAtIndex 0 List.675; + ret List.674; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; -procedure List.64 (List.121, List.122, List.123): - let List.644 : U64 = CallByName List.6 List.121; - let List.641 : Int1 = CallByName Num.22 List.122 List.644; - if List.641 then - let List.642 : {List U64, U64} = CallByName List.67 List.121 List.122 List.123; - ret List.642; +procedure List.64 (List.125, List.126, List.127): + let List.672 : U64 = CallByName List.6 List.125; + let List.669 : Int1 = CallByName Num.22 List.126 List.672; + if List.669 then + let List.670 : {List U64, U64} = CallByName List.67 List.125 List.126 List.127; + ret List.670; else - let List.640 : {List U64, U64} = Struct {List.121, List.123}; - ret List.640; + let List.668 : {List U64, U64} = Struct {List.125, List.127}; + ret List.668; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.643 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.643; + let List.671 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.671; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 aafbc7e935..874526e675 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.18 (List.168, List.169, List.170): - let List.642 : U64 = 0i64; - let List.643 : U64 = CallByName List.6 List.168; - let List.641 : List [C List *self] = CallByName List.97 List.168 List.169 List.170 List.642 List.643; - ret List.641; - -procedure List.280 (List.281, List.282, List.278): - let List.655 : [C List *self] = CallByName Test.2 List.282; - let List.654 : List [C List *self] = CallByName List.71 List.281 List.655; - ret List.654; - -procedure List.5 (List.277, List.278): - let List.279 : U64 = CallByName List.6 List.277; - let List.639 : List [C List *self] = CallByName List.68 List.279; - let List.638 : List [C List *self] = CallByName List.18 List.277 List.639 List.278; - ret List.638; - -procedure List.6 (#Attr.2): - let List.652 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.652; - -procedure List.66 (#Attr.2, #Attr.3): - let List.651 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.651; - -procedure List.68 (#Attr.2): - let List.657 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.657; - -procedure List.71 (#Attr.2, #Attr.3): - let List.656 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.656; - -procedure List.97 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.644 List.171 List.172 List.173 List.174 List.175: - let List.646 : Int1 = CallByName Num.22 List.174 List.175; - if List.646 then - let List.650 : [C List *self] = CallByName List.66 List.171 List.174; - inc List.650; - let List.176 : List [C List *self] = CallByName List.280 List.172 List.650 List.173; - let List.649 : U64 = 1i64; - let List.648 : U64 = CallByName Num.51 List.174 List.649; - jump List.644 List.171 List.176 List.173 List.648 List.175; +procedure List.101 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): + joinpoint List.672 List.175 List.176 List.177 List.178 List.179: + let List.674 : Int1 = CallByName Num.22 List.178 List.179; + if List.674 then + let List.678 : [C List *self] = CallByName List.66 List.175 List.178; + inc List.678; + let List.180 : List [C List *self] = CallByName List.284 List.176 List.678 List.177; + let List.677 : U64 = 1i64; + let List.676 : U64 = CallByName Num.51 List.178 List.677; + jump List.672 List.175 List.180 List.177 List.676 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.1; - jump List.644 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + jump List.672 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + +procedure List.18 (List.172, List.173, List.174): + let List.670 : U64 = 0i64; + let List.671 : U64 = CallByName List.6 List.172; + let List.669 : List [C List *self] = CallByName List.101 List.172 List.173 List.174 List.670 List.671; + ret List.669; + +procedure List.284 (List.285, List.286, List.282): + let List.683 : [C List *self] = CallByName Test.2 List.286; + let List.682 : List [C List *self] = CallByName List.71 List.285 List.683; + ret List.682; + +procedure List.5 (List.281, List.282): + let List.283 : U64 = CallByName List.6 List.281; + let List.667 : List [C List *self] = CallByName List.68 List.283; + let List.666 : List [C List *self] = CallByName List.18 List.281 List.667 List.282; + ret List.666; + +procedure List.6 (#Attr.2): + let List.680 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.680; + +procedure List.66 (#Attr.2, #Attr.3): + let List.679 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.679; + +procedure List.68 (#Attr.2): + let List.685 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.685; + +procedure List.71 (#Attr.2, #Attr.3): + let List.684 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.684; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 c80dc6e12f..23a5dd947c 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.116, List.117): - let List.660 : U64 = CallByName List.6 List.116; - let List.657 : Int1 = CallByName Num.22 List.117 List.660; - if List.657 then - let List.659 : I64 = CallByName List.66 List.116 List.117; - let List.658 : [C {}, C I64] = TagId(1) List.659; - ret List.658; +procedure List.2 (List.120, List.121): + let List.688 : U64 = CallByName List.6 List.120; + let List.685 : Int1 = CallByName Num.22 List.121 List.688; + if List.685 then + let List.687 : I64 = CallByName List.66 List.120 List.121; + let List.686 : [C {}, C I64] = TagId(1) List.687; + ret List.686; else - let List.656 : {} = Struct {}; - let List.655 : [C {}, C I64] = TagId(0) List.656; - ret List.655; + let List.684 : {} = Struct {}; + let List.683 : [C {}, C I64] = TagId(0) List.684; + ret List.683; -procedure List.3 (List.124, List.125, List.126): - let List.647 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126; - let List.646 : List I64 = StructAtIndex 0 List.647; - ret List.646; +procedure List.3 (List.128, List.129, List.130): + let List.675 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; + let List.674 : List I64 = StructAtIndex 0 List.675; + ret List.674; procedure List.6 (#Attr.2): - let List.645 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.645; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; -procedure List.64 (List.121, List.122, List.123): - let List.644 : U64 = CallByName List.6 List.121; - let List.641 : Int1 = CallByName Num.22 List.122 List.644; - if List.641 then - let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123; - ret List.642; +procedure List.64 (List.125, List.126, List.127): + let List.672 : U64 = CallByName List.6 List.125; + let List.669 : Int1 = CallByName Num.22 List.126 List.672; + if List.669 then + let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; + ret List.670; else - let List.640 : {List I64, I64} = Struct {List.121, List.123}; - ret List.640; + let List.668 : {List I64, I64} = Struct {List.125, List.127}; + ret List.668; procedure List.66 (#Attr.2, #Attr.3): - let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.653; + let List.681 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.681; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.643; + let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.671; 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/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 11de7e4d50..4352b4e0ea 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 @@ -29,58 +29,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.13 (#Attr.2, #Attr.3): - let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.664; - -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; - -procedure List.4 (List.132, List.133): - let List.660 : U64 = 1i64; - let List.659 : List U8 = CallByName List.70 List.132 List.660; - let List.658 : List U8 = CallByName List.71 List.659 List.133; - ret List.658; - -procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; - -procedure List.66 (#Attr.2, #Attr.3): - let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; - -procedure List.70 (#Attr.2, #Attr.3): - let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.654; - -procedure List.71 (#Attr.2, #Attr.3): - let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.652; - -procedure List.8 (#Attr.2, #Attr.3): - let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.662; - -procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : Str = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; +procedure List.101 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : Str = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.66 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; else - dec List.171; - ret List.172; + dec List.175; + ret List.176; in inc #Derived_gen.12; - jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + jump List.669 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + +procedure List.13 (#Attr.2, #Attr.3): + let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.692; + +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; + +procedure List.4 (List.136, List.137): + let List.688 : U64 = 1i64; + let List.687 : List U8 = CallByName List.70 List.136 List.688; + let List.686 : List U8 = CallByName List.71 List.687 List.137; + ret List.686; + +procedure List.6 (#Attr.2): + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; + +procedure List.66 (#Attr.2, #Attr.3): + let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; + +procedure List.70 (#Attr.2, #Attr.3): + let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.682; + +procedure List.71 (#Attr.2, #Attr.3): + let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.680; + +procedure List.8 (#Attr.2, #Attr.3): + let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.690; procedure Num.127 (#Attr.2): let Num.282 : 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 60d219c843..0163612902 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 @@ -87,93 +87,93 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.13 (#Attr.2, #Attr.3): - let List.664 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.664; +procedure List.101 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39): + joinpoint List.669 List.175 List.176 List.177 List.178 List.179: + let List.671 : Int1 = CallByName Num.22 List.178 List.179; + if List.671 then + let List.675 : [C {}, C {}, C Str] = CallByName List.66 List.175 List.178; + inc List.675; + let List.180 : List U8 = CallByName Test.66 List.176 List.675 List.177; + let List.674 : U64 = 1i64; + let List.673 : U64 = CallByName Num.51 List.178 List.674; + jump List.669 List.175 List.180 List.177 List.673 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.35; + jump List.669 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; + +procedure List.101 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): + joinpoint List.696 List.175 List.176 List.177 List.178 List.179: + let List.698 : Int1 = CallByName Num.22 List.178 List.179; + if List.698 then + let List.702 : Str = CallByName List.66 List.175 List.178; + inc List.702; + let List.180 : List U8 = CallByName Test.66 List.176 List.702 List.177; + let List.701 : U64 = 1i64; + let List.700 : U64 = CallByName Num.51 List.178 List.701; + jump List.696 List.175 List.180 List.177 List.700 List.179; + else + dec List.175; + ret List.176; + in + inc #Derived_gen.49; + jump List.696 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; procedure List.13 (#Attr.2, #Attr.3): - let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + let List.692 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; ret List.692; -procedure List.18 (List.168, List.169, List.170): - let List.639 : U64 = 0i64; - let List.640 : U64 = CallByName List.6 List.168; - let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640; - ret List.638; +procedure List.13 (#Attr.2, #Attr.3): + let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.720; -procedure List.18 (List.168, List.169, List.170): - let List.666 : U64 = 0i64; - let List.667 : U64 = CallByName List.6 List.168; - let List.665 : List U8 = CallByName List.97 List.168 List.169 List.170 List.666 List.667; - ret List.665; +procedure List.18 (List.172, List.173, List.174): + let List.667 : U64 = 0i64; + let List.668 : U64 = CallByName List.6 List.172; + let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; + ret List.666; -procedure List.4 (List.132, List.133): - let List.687 : U64 = 1i64; - let List.686 : List U8 = CallByName List.70 List.132 List.687; - let List.685 : List U8 = CallByName List.71 List.686 List.133; - ret List.685; +procedure List.18 (List.172, List.173, List.174): + let List.694 : U64 = 0i64; + let List.695 : U64 = CallByName List.6 List.172; + let List.693 : List U8 = CallByName List.101 List.172 List.173 List.174 List.694 List.695; + ret List.693; + +procedure List.4 (List.136, List.137): + let List.715 : U64 = 1i64; + let List.714 : List U8 = CallByName List.70 List.136 List.715; + let List.713 : List U8 = CallByName List.71 List.714 List.137; + ret List.713; procedure List.6 (#Attr.2): - let List.663 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.663; + let List.691 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.691; procedure List.6 (#Attr.2): - let List.690 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.690; + let List.718 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.718; procedure List.66 (#Attr.2, #Attr.3): - let List.648 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.648; + let List.676 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.676; procedure List.66 (#Attr.2, #Attr.3): - let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.675; + let List.703 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.703; procedure List.70 (#Attr.2, #Attr.3): - let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.681; + let List.709 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.709; procedure List.71 (#Attr.2, #Attr.3): - let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.707 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.707; procedure List.8 (#Attr.2, #Attr.3): - let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.689; - -procedure List.97 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42): - joinpoint List.668 List.171 List.172 List.173 List.174 List.175: - let List.670 : Int1 = CallByName Num.22 List.174 List.175; - if List.670 then - let List.674 : Str = CallByName List.66 List.171 List.174; - inc List.674; - let List.176 : List U8 = CallByName Test.66 List.172 List.674 List.173; - let List.673 : U64 = 1i64; - let List.672 : U64 = CallByName Num.51 List.174 List.673; - jump List.668 List.171 List.176 List.173 List.672 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.38; - jump List.668 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42; - -procedure List.97 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50): - joinpoint List.641 List.171 List.172 List.173 List.174 List.175: - let List.643 : Int1 = CallByName Num.22 List.174 List.175; - if List.643 then - let List.647 : [C {}, C {}, C Str] = CallByName List.66 List.171 List.174; - inc List.647; - let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173; - let List.646 : U64 = 1i64; - let List.645 : U64 = CallByName Num.51 List.174 List.646; - jump List.641 List.171 List.176 List.173 List.645 List.175; - else - dec List.171; - ret List.172; - in - inc #Derived_gen.46; - jump List.641 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50; + let List.717 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.717; procedure Num.127 (#Attr.2): let Num.286 : 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 f11d76f39e..871dd957cc 100644 --- a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt +++ b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.112 (List.541, List.542, List.543): - let List.656 : U64 = 0i64; - let List.657 : U64 = CallByName List.6 List.541; - let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657; - ret List.655; +procedure List.116 (List.569, List.570, List.571): + let List.684 : U64 = 0i64; + let List.685 : U64 = CallByName List.6 List.569; + let List.683 : [C U64, C U64] = CallByName List.80 List.569 List.570 List.571 List.684 List.685; + ret List.683; -procedure List.26 (List.209, List.210, List.211): - let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211; - let List.652 : U8 = 1i64; - let List.653 : U8 = GetTagId List.649; - let List.654 : Int1 = lowlevel Eq List.652 List.653; - if List.654 then - let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649; - ret List.212; +procedure List.26 (List.213, List.214, List.215): + let List.677 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215; + let List.680 : U8 = 1i64; + let List.681 : U8 = GetTagId List.677; + let List.682 : Int1 = lowlevel Eq List.680 List.681; + if List.682 then + let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.677; + ret List.216; else - let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649; - ret List.213; + let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.677; + ret List.217; -procedure List.38 (List.397, List.398): - let List.648 : U64 = CallByName List.6 List.397; - let List.399 : U64 = CallByName Num.77 List.648 List.398; - let List.638 : List U8 = CallByName List.43 List.397 List.399; - ret List.638; +procedure List.38 (List.401, List.402): + let List.676 : U64 = CallByName List.6 List.401; + let List.403 : U64 = CallByName Num.77 List.676 List.402; + let List.666 : List U8 = CallByName List.43 List.401 List.403; + ret List.666; -procedure List.43 (List.395, List.396): - let List.646 : U64 = CallByName List.6 List.395; - let List.645 : U64 = CallByName Num.77 List.646 List.396; - let List.640 : {U64, U64} = Struct {List.396, List.645}; - let List.639 : List U8 = CallByName List.49 List.395 List.640; - ret List.639; +procedure List.43 (List.399, List.400): + let List.674 : U64 = CallByName List.6 List.399; + let List.673 : U64 = CallByName Num.77 List.674 List.400; + let List.668 : {U64, U64} = Struct {List.400, List.673}; + let List.667 : List U8 = CallByName List.49 List.399 List.668; + ret List.667; -procedure List.49 (List.473, List.474): - let List.642 : U64 = StructAtIndex 1 List.474; - let List.643 : U64 = StructAtIndex 0 List.474; - let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643; - ret List.641; +procedure List.49 (List.477, List.478): + let List.670 : U64 = StructAtIndex 1 List.478; + let List.671 : U64 = StructAtIndex 0 List.478; + let List.669 : List U8 = CallByName List.72 List.477 List.670 List.671; + ret List.669; procedure List.6 (#Attr.2): - let List.647 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.647; + let List.675 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.675; procedure List.66 (#Attr.2, #Attr.3): - let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.670; + let List.698 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.698; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.644; + let List.672 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.672; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.658 List.544 List.545 List.546 List.547 List.548: - let List.660 : Int1 = CallByName Num.22 List.547 List.548; - if List.660 then - let List.669 : U8 = CallByName List.66 List.544 List.547; - let List.661 : [C U64, C U64] = CallByName Test.3 List.545 List.669; - let List.666 : U8 = 1i64; - let List.667 : U8 = GetTagId List.661; - let List.668 : Int1 = lowlevel Eq List.666 List.667; - if List.668 then - let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661; - let List.664 : U64 = 1i64; - let List.663 : U64 = CallByName Num.51 List.547 List.664; - jump List.658 List.544 List.549 List.546 List.663 List.548; + joinpoint List.686 List.572 List.573 List.574 List.575 List.576: + let List.688 : Int1 = CallByName Num.22 List.575 List.576; + if List.688 then + let List.697 : U8 = CallByName List.66 List.572 List.575; + let List.689 : [C U64, C U64] = CallByName Test.3 List.573 List.697; + let List.694 : U8 = 1i64; + let List.695 : U8 = GetTagId List.689; + let List.696 : Int1 = lowlevel Eq List.694 List.695; + if List.696 then + let List.577 : U64 = UnionAtIndex (Id 1) (Index 0) List.689; + let List.692 : U64 = 1i64; + let List.691 : U64 = CallByName Num.51 List.575 List.692; + jump List.686 List.572 List.577 List.574 List.691 List.576; else - dec List.544; - let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661; - let List.665 : [C U64, C U64] = TagId(0) List.550; - ret List.665; + dec List.572; + let List.578 : U64 = UnionAtIndex (Id 0) (Index 0) List.689; + let List.693 : [C U64, C U64] = TagId(0) List.578; + ret List.693; else - dec List.544; - let List.659 : [C U64, C U64] = TagId(1) List.545; - ret List.659; + dec List.572; + let List.687 : [C U64, C U64] = TagId(1) List.573; + ret List.687; in inc #Derived_gen.0; - jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.686 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; From efae03240ea6df8403eaef76ecbf8d20bf44c955 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Tue, 12 Nov 2024 22:12:02 -0600 Subject: [PATCH 10/14] fix ordering again --- crates/compiler/module/src/symbol.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index 9156c1d4e6..9e45e83abe 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1514,7 +1514,7 @@ define_builtins! { 92 LIST_WALK_FX: "walk!" 93 LIST_SPLIT_AT: "splitAt" 94 LIST_SPLIT_ON: "splitOn" - 94 LIST_SPLIT_ON_LIST: "splitOnList" + 95 LIST_SPLIT_ON_LIST: "splitOnList" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias From cf05fe03e9000649556a480460ea1778adec7cf8 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Wed, 13 Nov 2024 20:21:42 -0600 Subject: [PATCH 11/14] refactor implementation to avoid bug --- crates/compiler/builtins/roc/List.roc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 17559d60c0..08719873a7 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -1285,18 +1285,19 @@ splitOn = \elements, delimiter -> ## ``` splitOnList : List a, List a -> List (List a) where a implements Eq splitOnList = \elements, delimiter -> - if delimiter == [] then - [elements] - else - help = \remaining, chunks, currentChunk -> when remaining is [] -> List.append chunks currentChunk - _ if List.startsWith remaining delimiter -> - help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) [] + [x, .. as rest] -> + if List.startsWith remaining delimiter then + help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) [] + else + help rest chunks (List.append currentChunk x) - [x, .. as rest] -> help rest chunks (List.append currentChunk x) - help elements [] [] + if delimiter == [] then + [elements] + else + help elements [] [] ## DEPRECATED: will be removed soon split : List elem, U64 -> { before : List elem, others : List elem } From d0735f2661a311d1c2c5231f134a8ee22d55645e Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:31:37 -0600 Subject: [PATCH 12/14] remove List.split --- crates/compiler/builtins/roc/List.roc | 11 ----------- crates/compiler/module/src/symbol.rs | 7 +++---- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 08719873a7..f8fb3bdc03 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -55,7 +55,6 @@ module [ findLastIndex, sublist, intersperse, - split, splitAt, splitOn, splitOnList, @@ -1299,16 +1298,6 @@ splitOnList = \elements, delimiter -> else help elements [] [] -## DEPRECATED: will be removed soon -split : List elem, U64 -> { before : List elem, others : List elem } -split = \elements, userSplitIndex -> - length = List.len elements - splitIndex = if length > userSplitIndex then userSplitIndex else length - before = List.sublist elements { start: 0, len: splitIndex } - others = List.sublist elements { start: splitIndex, len: Num.subWrap length splitIndex } - - { before, others } - ## Returns the elements before the first occurrence of a delimiter, as well as the ## remaining elements after that occurrence. If the delimiter is not found, returns `Err`. ## ```roc diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index 9e45e83abe..1ee4273256 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1471,7 +1471,7 @@ define_builtins! { 49 LIST_SUBLIST: "sublist" 50 LIST_INTERSPERSE: "intersperse" 51 LIST_INTERSPERSE_CLOS: "#intersperseClos" - 52 LIST_SPLIT: "split" + 52 LIST_SPLIT_AT: "splitAt" 53 LIST_SPLIT_FIRST: "splitFirst" 54 LIST_SPLIT_LAST: "splitLast" 55 LIST_SPLIT_CLOS: "#splitClos" @@ -1512,9 +1512,8 @@ define_builtins! { 90 LIST_FOR_EACH_FX: "forEach!" 91 LIST_FOR_EACH_TRY_FX: "forEachTry!" 92 LIST_WALK_FX: "walk!" - 93 LIST_SPLIT_AT: "splitAt" - 94 LIST_SPLIT_ON: "splitOn" - 95 LIST_SPLIT_ON_LIST: "splitOnList" + 93 LIST_SPLIT_ON: "splitOn" + 94 LIST_SPLIT_ON_LIST: "splitOnList" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias From d99c3479981b8cc50705cc164146f7a3c83f1324 Mon Sep 17 00:00:00 2001 From: Isaac Van Doren <69181572+isaacvando@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:42:49 -0600 Subject: [PATCH 13/14] rename Str.split --- .../tests/test-projects/expects/expects.roc | 2 +- crates/compiler/builtins/README.md | 10 +- crates/compiler/builtins/bitcode/src/main.zig | 2 +- crates/compiler/builtins/bitcode/src/str.zig | 50 +-- crates/compiler/builtins/roc/Str.roc | 16 +- crates/compiler/builtins/src/bitcode.rs | 2 +- crates/compiler/can/src/builtins.rs | 2 +- crates/compiler/gen_dev/src/lib.rs | 4 +- crates/compiler/gen_llvm/src/llvm/lowlevel.rs | 6 +- crates/compiler/gen_wasm/src/low_level.rs | 2 +- crates/compiler/module/src/low_level.rs | 4 +- crates/compiler/module/src/symbol.rs | 2 +- .../compiler/mono/src/drop_specialization.rs | 2 +- crates/compiler/mono/src/inc_dec.rs | 2 +- crates/compiler/test_gen/src/gen_list.rs | 4 +- crates/compiler/test_gen/src/gen_refcount.rs | 4 +- crates/compiler/test_gen/src/gen_str.rs | 76 ++--- crates/compiler/test_gen/src/wasm_str.rs | 48 +-- ...e_in_polymorphic_expression_issue_4717.txt | 116 +++---- .../generated/call_function_in_empty_list.txt | 68 ++-- .../call_function_in_empty_list_unbound.txt | 68 ++-- .../generated/capture_void_layout_task.txt | 44 +-- ...ose_correct_recursion_var_under_record.txt | 128 ++++---- .../test_mono/generated/closure_in_list.txt | 4 +- ...lambda_set_productive_nullable_wrapped.txt | 48 +-- crates/compiler/test_mono/generated/dict.txt | 4 +- .../generated/empty_list_of_function_type.txt | 28 +- .../compiler/test_mono/generated/encode.txt | 18 +- .../encode_derived_nested_record_string.txt | 114 +++---- ...encode_derived_record_one_field_string.txt | 66 ++-- ...ncode_derived_record_two_field_strings.txt | 66 ++-- .../generated/encode_derived_string.txt | 22 +- .../encode_derived_tag_one_field_string.txt | 72 ++--- ...encode_derived_tag_two_payloads_string.txt | 70 ++-- .../generated/inspect_derived_dict.txt | 304 +++++++++--------- .../generated/inspect_derived_list.txt | 44 +-- .../inspect_derived_nested_record_string.txt | 90 +++--- .../generated/inspect_derived_record.txt | 46 +-- ...nspect_derived_record_one_field_string.txt | 46 +-- ...spect_derived_record_two_field_strings.txt | 46 +-- .../inspect_derived_tag_one_field_string.txt | 56 ++-- ...nspect_derived_tag_two_payloads_string.txt | 58 ++-- .../test_mono/generated/ir_int_add.txt | 4 +- ...cialize_errors_behind_unified_branches.txt | 54 ++-- .../test_mono/generated/issue_4770.txt | 196 +++++------ ...ure_with_multiple_recursive_structures.txt | 44 +-- .../test_mono/generated/list_append.txt | 18 +- .../generated/list_append_closure.txt | 18 +- .../generated/list_cannot_update_inplace.txt | 32 +- .../compiler/test_mono/generated/list_get.txt | 28 +- .../compiler/test_mono/generated/list_len.txt | 8 +- .../generated/list_map_closure_borrows.txt | 94 +++--- .../generated/list_map_closure_owns.txt | 94 +++--- ...ist_map_take_capturing_or_noncapturing.txt | 86 ++--- .../generated/list_pass_to_function.txt | 32 +- .../test_mono/generated/list_sort_asc.txt | 12 +- .../test_mono/generated/quicksort_swap.txt | 56 ++-- .../test_mono/generated/record_update.txt | 32 +- ...function_and_union_with_inference_hole.txt | 72 ++--- .../compiler/test_mono/generated/rigids.txt | 56 ++-- ...not_duplicate_identical_concrete_types.txt | 72 ++--- ...types_without_unification_of_unifiable.txt | 126 ++++---- .../weakening_avoids_overspecialization.txt | 116 +++---- crates/valgrind_tests/src/lib.rs | 2 +- www/InteractiveExample.roc | 2 +- www/main.roc | 2 +- 66 files changed, 1560 insertions(+), 1560 deletions(-) diff --git a/crates/cli/tests/test-projects/expects/expects.roc b/crates/cli/tests/test-projects/expects/expects.roc index 439fcf250f..0e9a57c0df 100644 --- a/crates/cli/tests/test-projects/expects/expects.roc +++ b/crates/cli/tests/test-projects/expects/expects.roc @@ -21,7 +21,7 @@ polyDbg = \x -> main = str = "this will for sure be a large string so when we split it it will use seamless slices which affect printing" - words = Str.split str " " + words = Str.splitOn str " " expect words == [] x = 42 diff --git a/crates/compiler/builtins/README.md b/crates/compiler/builtins/README.md index 03081830d1..4f8c1fe200 100644 --- a/crates/compiler/builtins/README.md +++ b/crates/compiler/builtins/README.md @@ -10,7 +10,7 @@ Next, look towards the bottom of the `compiler/module/src/symbol.rs` file. Insid For each of the builtin modules, there is a file in `compiler/test_gen/src/` like `gen_num.rs`, `gen_str.rs` etc. Add new tests for the module you are changing to the appropriate file here. You can look at the existing test cases for examples and inspiration. -You can run your new tests locally using `cargo test-gen-llvm`. You can add a filter like `cargo test-gen-llvm gen_str` (to only run tests defined in `gen_str.rs`) or `cargo test-gen-llvm gen_str::str_split` (to only run tests defined in `gen_str` whose names start with `str_split`). More details can be found in the README in the `compiler/test_gen` directory. +You can run your new tests locally using `cargo test-gen-llvm`. You can add a filter like `cargo test-gen-llvm gen_str` (to only run tests defined in `gen_str.rs`) or `cargo test-gen-llvm gen_str::str_split_on` (to only run tests defined in `gen_str` whose names start with `str_split`). More details can be found in the README in the `compiler/test_gen` directory. ## A builtin implemented directly as LLVM @@ -22,8 +22,8 @@ Some of these have `#` inside their name (`first#list`, `#lt` ..). This is a tri But we can use these values and some of these are necessary for implementing builtins. For example, `List.get` returns tags, and it is not easy for us to create tags when composing LLVM. What is easier however, is: -- ..writing `List.#getUnsafe` that has the dangerous signature of `List elem, U64 -> elem` in LLVM -- ..writing `List elem, U64 -> Result elem [OutOfBounds]*` in a type safe way that uses `getUnsafe` internally, only after it checks if the `elem` at `U64` index exists. +- ..writing `List.#getUnsafe` that has the dangerous signature of `List elem, U64 -> elem` in LLVM +- ..writing `List elem, U64 -> Result elem [OutOfBounds]*` in a type safe way that uses `getUnsafe` internally, only after it checks if the `elem` at `U64` index exists. ### can/src/builtins.rs @@ -123,5 +123,5 @@ But replace `Num.atan`, the return value, and the return type with your new buil When implementing a new builtin, it is often easy to copy and paste the implementation for an existing builtin. This can take you quite far since many builtins are very similar, but it also risks forgetting to change one small part of what you copy and pasted and losing a lot of time later on when you cant figure out why things don't work. So, speaking from experience, even if you are copying an existing builtin, try and implement it manually without copying and pasting. Two recent instances of this (as of September 7th, 2020): -- `List.keepIf` did not work for a long time because in builtins its `LowLevel` was `ListMap`. This was because I copy and pasted the `List.map` implementation in `builtins.rs -- `List.walkBackwards` had mysterious memory bugs for a little while because in `unique.rs` its return type was `list_type(flex(b))` instead of `flex(b)` since it was copy and pasted from `List.keepIf`. +- `List.keepIf` did not work for a long time because in builtins its `LowLevel` was `ListMap`. This was because I copy and pasted the `List.map` implementation in `builtins.rs +- `List.walkBackwards` had mysterious memory bugs for a little while because in `unique.rs` its return type was `list_type(flex(b))` instead of `flex(b)` since it was copy and pasted from `List.keepIf`. diff --git a/crates/compiler/builtins/bitcode/src/main.zig b/crates/compiler/builtins/bitcode/src/main.zig index 6b677519b9..ebec0a6991 100644 --- a/crates/compiler/builtins/bitcode/src/main.zig +++ b/crates/compiler/builtins/bitcode/src/main.zig @@ -185,7 +185,7 @@ comptime { const str = @import("str.zig"); comptime { exportStrFn(str.init, "init"); - exportStrFn(str.strSplit, "str_split"); + exportStrFn(str.strSplitOn, "str_split_on"); exportStrFn(str.countSegments, "count_segments"); exportStrFn(str.countUtf8Bytes, "count_utf8_bytes"); exportStrFn(str.isEmpty, "is_empty"); diff --git a/crates/compiler/builtins/bitcode/src/str.zig b/crates/compiler/builtins/bitcode/src/str.zig index 1fbac1b800..c47b6a70e8 100644 --- a/crates/compiler/builtins/bitcode/src/str.zig +++ b/crates/compiler/builtins/bitcode/src/str.zig @@ -598,14 +598,14 @@ fn strFromFloatHelp(comptime T: type, float: T) RocStr { return RocStr.init(&buf, result.len); } -// Str.split -pub fn strSplit(string: RocStr, delimiter: RocStr) callconv(.C) RocList { +// Str.splitOn +pub fn strSplitOn(string: RocStr, delimiter: RocStr) callconv(.C) RocList { const segment_count = countSegments(string, delimiter); const list = RocList.allocate(@alignOf(RocStr), segment_count, @sizeOf(RocStr), true); if (list.bytes) |bytes| { const strings = @as([*]RocStr, @ptrCast(@alignCast(bytes))); - strSplitHelp(strings, string, delimiter); + strSplitOnHelp(strings, string, delimiter); } return list; @@ -625,7 +625,7 @@ fn initFromBigStr(slice_bytes: [*]u8, len: usize, alloc_ptr: usize) RocStr { }; } -fn strSplitHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void { +fn strSplitOnHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void { if (delimiter.len() == 0) { string.incref(1); array[0] = string; @@ -650,7 +650,7 @@ fn strSplitHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void { } test "strSplitHelp: empty delimiter" { - // Str.split "abc" "" == ["abc"] + // Str.splitOn "abc" "" == ["abc"] const str_arr = "abc"; const str = RocStr.init(str_arr, str_arr.len); @@ -660,7 +660,7 @@ test "strSplitHelp: empty delimiter" { var array: [1]RocStr = undefined; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); var expected = [1]RocStr{ str, @@ -684,7 +684,7 @@ test "strSplitHelp: empty delimiter" { } test "strSplitHelp: no delimiter" { - // Str.split "abc" "!" == ["abc"] + // Str.splitOn "abc" "!" == ["abc"] const str_arr = "abc"; const str = RocStr.init(str_arr, str_arr.len); @@ -694,7 +694,7 @@ test "strSplitHelp: no delimiter" { var array: [1]RocStr = undefined; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); var expected = [1]RocStr{ str, @@ -731,7 +731,7 @@ test "strSplitHelp: empty start" { }; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); const one = RocStr.init("a", 1); @@ -772,7 +772,7 @@ test "strSplitHelp: empty end" { }; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); const one = RocStr.init("1", 1); const two = RocStr.init("2", 1); @@ -811,7 +811,7 @@ test "strSplitHelp: string equals delimiter" { }; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str_delimiter, str_delimiter); + strSplitOnHelp(array_ptr, str_delimiter, str_delimiter); var expected = [2]RocStr{ RocStr.empty(), RocStr.empty() }; @@ -846,7 +846,7 @@ test "strSplitHelp: delimiter on sides" { undefined, }; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); const ghi_arr = "ghi"; const ghi = RocStr.init(ghi_arr, ghi_arr.len); @@ -875,7 +875,7 @@ test "strSplitHelp: delimiter on sides" { } test "strSplitHelp: three pieces" { - // Str.split "a!b!c" "!" == ["a", "b", "c"] + // Str.splitOn "a!b!c" "!" == ["a", "b", "c"] const str_arr = "a!b!c"; const str = RocStr.init(str_arr, str_arr.len); @@ -886,7 +886,7 @@ test "strSplitHelp: three pieces" { var array: [array_len]RocStr = undefined; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); const a = RocStr.init("a", 1); const b = RocStr.init("b", 1); @@ -916,7 +916,7 @@ test "strSplitHelp: three pieces" { } test "strSplitHelp: overlapping delimiter 1" { - // Str.split "aaa" "aa" == ["", "a"] + // Str.splitOn "aaa" "aa" == ["", "a"] const str_arr = "aaa"; const str = RocStr.init(str_arr, str_arr.len); @@ -926,7 +926,7 @@ test "strSplitHelp: overlapping delimiter 1" { var array: [2]RocStr = undefined; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); var expected = [2]RocStr{ RocStr.empty(), @@ -941,7 +941,7 @@ test "strSplitHelp: overlapping delimiter 1" { } test "strSplitHelp: overlapping delimiter 2" { - // Str.split "aaa" "aa" == ["", "a"] + // Str.splitOn "aaa" "aa" == ["", "a"] const str_arr = "aaaa"; const str = RocStr.init(str_arr, str_arr.len); @@ -951,7 +951,7 @@ test "strSplitHelp: overlapping delimiter 2" { var array: [3]RocStr = undefined; const array_ptr: [*]RocStr = &array; - strSplitHelp(array_ptr, str, delimiter); + strSplitOnHelp(array_ptr, str, delimiter); var expected = [3]RocStr{ RocStr.empty(), @@ -967,7 +967,7 @@ test "strSplitHelp: overlapping delimiter 2" { try expect(array[2].eq(expected[2])); } -// This is used for `Str.split : Str, Str -> Array Str +// This is used for `Str.splitOn : Str, Str -> List Str // It is used to count how many segments the input `_str` // needs to be broken into, so that we can allocate a array // of that size. It always returns at least 1. @@ -985,7 +985,7 @@ pub fn countSegments(string: RocStr, delimiter: RocStr) callconv(.C) usize { } test "countSegments: long delimiter" { - // Str.split "str" "delimiter" == ["str"] + // Str.splitOn "str" "delimiter" == ["str"] // 1 segment const str_arr = "str"; const str = RocStr.init(str_arr, str_arr.len); @@ -1003,7 +1003,7 @@ test "countSegments: long delimiter" { } test "countSegments: delimiter at start" { - // Str.split "hello there" "hello" == ["", " there"] + // Str.splitOn "hello there" "hello" == ["", " there"] // 2 segments const str_arr = "hello there"; const str = RocStr.init(str_arr, str_arr.len); @@ -1022,7 +1022,7 @@ test "countSegments: delimiter at start" { } test "countSegments: delimiter interspered" { - // Str.split "a!b!c" "!" == ["a", "b", "c"] + // Str.splitOn "a!b!c" "!" == ["a", "b", "c"] // 3 segments const str_arr = "a!b!c"; const str = RocStr.init(str_arr, str_arr.len); @@ -1041,7 +1041,7 @@ test "countSegments: delimiter interspered" { } test "countSegments: string equals delimiter" { - // Str.split "/" "/" == ["", ""] + // Str.splitOn "/" "/" == ["", ""] // 2 segments const str_delimiter_arr = "/"; const str_delimiter = RocStr.init(str_delimiter_arr, str_delimiter_arr.len); @@ -1056,14 +1056,14 @@ test "countSegments: string equals delimiter" { } test "countSegments: overlapping delimiter 1" { - // Str.split "aaa" "aa" == ["", "a"] + // Str.splitOn "aaa" "aa" == ["", "a"] const segments_count = countSegments(RocStr.init("aaa", 3), RocStr.init("aa", 2)); try expectEqual(segments_count, 2); } test "countSegments: overlapping delimiter 2" { - // Str.split "aaa" "aa" == ["", "a"] + // Str.splitOn "aaa" "aa" == ["", "a"] const segments_count = countSegments(RocStr.init("aaaa", 4), RocStr.init("aa", 2)); try expectEqual(segments_count, 3); diff --git a/crates/compiler/builtins/roc/Str.roc b/crates/compiler/builtins/roc/Str.roc index 4b3d5ea897..3e2569ef19 100644 --- a/crates/compiler/builtins/roc/Str.roc +++ b/crates/compiler/builtins/roc/Str.roc @@ -253,7 +253,7 @@ ## ## The way Roc organizes the `Str` module and supporting packages is designed to help answer this question. Every situation is different, but the following rules of thumb are typical: ## -## * Most often, using `Str` values along with helper functions like [`split`](https://www.roc-lang.org/builtins/Str#split), [`joinWith`](https://www.roc-lang.org/builtins/Str#joinWith), and so on, is the best option. +## * Most often, using `Str` values along with helper functions like [`splitOn`](https://www.roc-lang.org/builtins/Str#splitOn), [`joinWith`](https://www.roc-lang.org/builtins/Str#joinWith), and so on, is the best option. ## * If you are specifically implementing a parser, working in UTF-8 bytes is usually the best option. So functions like [`walkUtf8`](https://www.roc-lang.org/builtins/Str#walkUtf8), [toUtf8](https://www.roc-lang.org/builtins/Str#toUtf8), and so on. (Note that single-quote literals produce number literals, so ASCII-range literals like `'a'` gives an integer literal that works with a UTF-8 `U8`.) ## * If you are implementing a Unicode library like [roc-lang/unicode](https://github.com/roc-lang/unicode), working in terms of code points will be unavoidable. Aside from basic readability considerations like `\u(...)` in string literals, if you have the option to avoid working in terms of code points, it is almost always correct to avoid them. ## * If it seems like a good idea to split a string into "characters" (graphemes), you should definitely stop and reconsider whether this is really the best design. Almost always, doing this is some combination of more error-prone or slower (usually both) than doing something else that does not require taking graphemes into consideration. @@ -294,7 +294,7 @@ ## Try putting this into `roc repl`: ## ## ``` -## » "foo/bar/baz" |> Str.split "/" +## » "foo/bar/baz" |> Str.splitOn "/" ## ## ["foo", "bar", "baz"] : List Str ## ``` @@ -304,7 +304,7 @@ ## Now let's suppose they were long enough that this optimization no longer applied: ## ## ``` -## » "a much, much, much, much/longer/string compared to the last one!" |> Str.split "/" +## » "a much, much, much, much/longer/string compared to the last one!" |> Str.splitOn "/" ## ## ["a much, much, much, much", "longer", "string compared to the last one!"] : List Str ## ``` @@ -332,7 +332,7 @@ module [ concat, isEmpty, joinWith, - split, + splitOn, repeat, countUtf8Bytes, toUtf8, @@ -499,10 +499,10 @@ joinWith : List Str, Str -> Str ## Passing `""` for the separator is not useful; ## it returns the original string wrapped in a [List]. ## ```roc -## expect Str.split "1,2,3" "," == ["1","2","3"] -## expect Str.split "1,2,3" "" == ["1,2,3"] +## expect Str.splitOn "1,2,3" "," == ["1","2","3"] +## expect Str.splitOn "1,2,3" "" == ["1,2,3"] ## ``` -split : Str, Str -> List Str +splitOn : Str, Str -> List Str ## Repeats a string the given number of times. ## ```roc @@ -518,7 +518,7 @@ repeat : Str, U64 -> Str ## Returns a [List] of the string's [U8] UTF-8 [code units](https://unicode.org/glossary/#code_unit). ## (To split the string into a [List] of smaller [Str] values instead of [U8] values, -## see [Str.split].) +## see [Str.splitOn].) ## ```roc ## expect Str.toUtf8 "Roc" == [82, 111, 99] ## expect Str.toUtf8 "鹏" == [233, 185, 143] diff --git a/crates/compiler/builtins/src/bitcode.rs b/crates/compiler/builtins/src/bitcode.rs index a43c672ca4..ad98e35a46 100644 --- a/crates/compiler/builtins/src/bitcode.rs +++ b/crates/compiler/builtins/src/bitcode.rs @@ -343,7 +343,7 @@ pub const STR_INIT: &str = "roc_builtins.str.init"; pub const STR_COUNT_SEGMENTS: &str = "roc_builtins.str.count_segments"; pub const STR_CONCAT: &str = "roc_builtins.str.concat"; pub const STR_JOIN_WITH: &str = "roc_builtins.str.joinWith"; -pub const STR_SPLIT: &str = "roc_builtins.str.str_split"; +pub const STR_SPLIT_ON: &str = "roc_builtins.str.str_split_on"; pub const STR_COUNT_UTF8_BYTES: &str = "roc_builtins.str.count_utf8_bytes"; pub const STR_IS_EMPTY: &str = "roc_builtins.str.is_empty"; pub const STR_CAPACITY: &str = "roc_builtins.str.capacity"; diff --git a/crates/compiler/can/src/builtins.rs b/crates/compiler/can/src/builtins.rs index abc4977925..6b4c99ee5e 100644 --- a/crates/compiler/can/src/builtins.rs +++ b/crates/compiler/can/src/builtins.rs @@ -116,7 +116,7 @@ map_symbol_to_lowlevel_and_arity! { StrIsEmpty; STR_IS_EMPTY; 1, StrStartsWith; STR_STARTS_WITH; 2, StrEndsWith; STR_ENDS_WITH; 2, - StrSplit; STR_SPLIT; 2, + StrSplitOn; STR_SPLIT_ON; 2, StrCountUtf8Bytes; STR_COUNT_UTF8_BYTES; 1, StrFromUtf8; STR_FROM_UTF8_LOWLEVEL; 1, StrToUtf8; STR_TO_UTF8; 1, diff --git a/crates/compiler/gen_dev/src/lib.rs b/crates/compiler/gen_dev/src/lib.rs index 08c4ad4129..08140f19c5 100644 --- a/crates/compiler/gen_dev/src/lib.rs +++ b/crates/compiler/gen_dev/src/lib.rs @@ -1641,9 +1641,9 @@ trait Backend<'a> { arg_layouts, ret_layout, ), - LowLevel::StrSplit => self.build_fn_call( + LowLevel::StrSplitOn => self.build_fn_call( sym, - bitcode::STR_SPLIT.to_string(), + bitcode::STR_SPLIT_ON.to_string(), args, arg_layouts, ret_layout, diff --git a/crates/compiler/gen_llvm/src/llvm/lowlevel.rs b/crates/compiler/gen_llvm/src/llvm/lowlevel.rs index 6ddcad1f7e..5580832b44 100644 --- a/crates/compiler/gen_llvm/src/llvm/lowlevel.rs +++ b/crates/compiler/gen_llvm/src/llvm/lowlevel.rs @@ -471,8 +471,8 @@ pub(crate) fn run_low_level<'a, 'ctx>( bitcode::STR_REPEAT, ) } - StrSplit => { - // Str.split : Str, Str -> List Str + StrSplitOn => { + // Str.splitOn : Str, Str -> List Str arguments!(string, delimiter); call_str_bitcode_fn( @@ -480,7 +480,7 @@ pub(crate) fn run_low_level<'a, 'ctx>( &[string, delimiter], &[], BitcodeReturns::List, - bitcode::STR_SPLIT, + bitcode::STR_SPLIT_ON, ) } StrIsEmpty => { diff --git a/crates/compiler/gen_wasm/src/low_level.rs b/crates/compiler/gen_wasm/src/low_level.rs index 2d88a79b01..16fa30bb5d 100644 --- a/crates/compiler/gen_wasm/src/low_level.rs +++ b/crates/compiler/gen_wasm/src/low_level.rs @@ -200,7 +200,7 @@ impl<'a> LowLevelCall<'a> { }, StrStartsWith => self.load_args_and_call_zig(backend, bitcode::STR_STARTS_WITH), StrEndsWith => self.load_args_and_call_zig(backend, bitcode::STR_ENDS_WITH), - StrSplit => self.load_args_and_call_zig(backend, bitcode::STR_SPLIT), + StrSplitOn => self.load_args_and_call_zig(backend, bitcode::STR_SPLIT_ON), StrCountUtf8Bytes => { self.load_args_and_call_zig(backend, bitcode::STR_COUNT_UTF8_BYTES) } diff --git a/crates/compiler/module/src/low_level.rs b/crates/compiler/module/src/low_level.rs index ccef9ed5d0..2f40c002a8 100644 --- a/crates/compiler/module/src/low_level.rs +++ b/crates/compiler/module/src/low_level.rs @@ -10,7 +10,7 @@ pub enum LowLevel { StrIsEmpty, StrStartsWith, StrEndsWith, - StrSplit, + StrSplitOn, StrCountUtf8Bytes, StrFromInt, StrFromUtf8, @@ -253,7 +253,7 @@ map_symbol_to_lowlevel! { StrIsEmpty <= STR_IS_EMPTY; StrStartsWith <= STR_STARTS_WITH; StrEndsWith <= STR_ENDS_WITH; - StrSplit <= STR_SPLIT; + StrSplitOn <= STR_SPLIT_ON; StrCountUtf8Bytes <= STR_COUNT_UTF8_BYTES; StrFromUtf8 <= STR_FROM_UTF8_LOWLEVEL; StrToUtf8 <= STR_TO_UTF8; diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index 1ee4273256..47a2e5f8e2 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1371,7 +1371,7 @@ define_builtins! { 2 STR_APPEND: "#append" // unused 3 STR_CONCAT: "concat" 4 STR_JOIN_WITH: "joinWith" - 5 STR_SPLIT: "split" + 5 STR_SPLIT_ON: "splitOn" 6 STR_WITH_PREFIX: "withPrefix" 7 STR_STARTS_WITH: "startsWith" 8 STR_ENDS_WITH: "endsWith" diff --git a/crates/compiler/mono/src/drop_specialization.rs b/crates/compiler/mono/src/drop_specialization.rs index 3277b188d9..f56c5b87ae 100644 --- a/crates/compiler/mono/src/drop_specialization.rs +++ b/crates/compiler/mono/src/drop_specialization.rs @@ -1563,7 +1563,7 @@ fn low_level_no_rc(lowlevel: &LowLevel) -> RC { StrTrim => RC::Rc, StrTrimStart => RC::Rc, StrTrimEnd => RC::Rc, - StrSplit => RC::NoRc, + StrSplitOn => RC::NoRc, StrToNum => RC::NoRc, ListPrepend => RC::Rc, StrJoinWith => RC::NoRc, diff --git a/crates/compiler/mono/src/inc_dec.rs b/crates/compiler/mono/src/inc_dec.rs index 338bd37951..e00e2a00c7 100644 --- a/crates/compiler/mono/src/inc_dec.rs +++ b/crates/compiler/mono/src/inc_dec.rs @@ -1274,7 +1274,7 @@ pub(crate) fn lowlevel_borrow_signature(op: LowLevel) -> &'static [Ownership] { StrTrim => &[OWNED], StrTrimStart => &[OWNED], StrTrimEnd => &[OWNED], - StrSplit => &[BORROWED, BORROWED], + StrSplitOn => &[BORROWED, BORROWED], StrToNum => &[BORROWED], ListPrepend => &[OWNED, OWNED], StrJoinWith => &[BORROWED, BORROWED], diff --git a/crates/compiler/test_gen/src/gen_list.rs b/crates/compiler/test_gen/src/gen_list.rs index b57e9c5c64..59f4805091 100644 --- a/crates/compiler/test_gen/src/gen_list.rs +++ b/crates/compiler/test_gen/src/gen_list.rs @@ -3299,7 +3299,7 @@ fn list_join_map() { assert_evals_to!( indoc!( r#" - List.joinMap ["guava,apple,pear", "bailey,cyrus"] (\s -> Str.split s ",") + List.joinMap ["guava,apple,pear", "bailey,cyrus"] (\s -> Str.splitOn s ",") "# ), RocList::from_slice(&[ @@ -3319,7 +3319,7 @@ fn list_join_map_empty() { assert_evals_to!( indoc!( r#" - List.joinMap [] (\s -> Str.split s ",") + List.joinMap [] (\s -> Str.splitOn s ",") "# ), RocList::from_slice(&[]), diff --git a/crates/compiler/test_gen/src/gen_refcount.rs b/crates/compiler/test_gen/src/gen_refcount.rs index 4e00b3fa54..0e50e1b2ca 100644 --- a/crates/compiler/test_gen/src/gen_refcount.rs +++ b/crates/compiler/test_gen/src/gen_refcount.rs @@ -220,7 +220,7 @@ fn list_str_take_first() { #[test] #[cfg(feature = "gen-wasm")] -fn list_str_split() { +fn list_str_split_on() { assert_refcounts!( indoc!( r#" @@ -239,7 +239,7 @@ fn list_str_split() { #[test] #[cfg(feature = "gen-wasm")] -fn list_str_split_zero() { +fn list_str_split_on_zero() { assert_refcounts!( indoc!( r#" diff --git a/crates/compiler/test_gen/src/gen_str.rs b/crates/compiler/test_gen/src/gen_str.rs index 7d7a96a349..f50e72104c 100644 --- a/crates/compiler/test_gen/src/gen_str.rs +++ b/crates/compiler/test_gen/src/gen_str.rs @@ -51,11 +51,11 @@ fn string_neq() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_empty_delimiter() { +fn str_split_on_empty_delimiter() { assert_evals_to!( indoc!( r#" - List.len (Str.split "hello" "") + List.len (Str.splitOn "hello" "") "# ), 1, @@ -65,7 +65,7 @@ fn str_split_empty_delimiter() { assert_evals_to!( indoc!( r#" - when List.first (Str.split "JJJ" "") is + when List.first (Str.splitOn "JJJ" "") is Ok str -> Str.countUtf8Bytes str @@ -81,11 +81,11 @@ fn str_split_empty_delimiter() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_bigger_delimiter_small_str() { +fn str_split_on_bigger_delimiter_small_str() { assert_evals_to!( indoc!( r#" - List.len (Str.split "hello" "JJJJ there") + List.len (Str.splitOn "hello" "JJJJ there") "# ), 1, @@ -95,7 +95,7 @@ fn str_split_bigger_delimiter_small_str() { assert_evals_to!( indoc!( r#" - when List.first (Str.split "JJJ" "JJJJ there") is + when List.first (Str.splitOn "JJJ" "JJJJ there") is Ok str -> Str.countUtf8Bytes str @@ -111,11 +111,11 @@ fn str_split_bigger_delimiter_small_str() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_str_concat_repeated() { +fn str_split_on_str_concat_repeated() { assert_evals_to!( indoc!( r#" - when List.first (Str.split "JJJJJ" "JJJJ there") is + when List.first (Str.splitOn "JJJJJ" "JJJJ there") is Ok str -> str |> Str.concat str @@ -135,9 +135,9 @@ fn str_split_str_concat_repeated() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_small_str_bigger_delimiter() { +fn str_split_on_small_str_bigger_delimiter() { assert_evals_to!( - indoc!(r#"Str.split "JJJ" "0123456789abcdefghi""#), + indoc!(r#"Str.splitOn "JJJ" "0123456789abcdefghi""#), RocList::from_slice(&[RocStr::from("JJJ")]), RocList ); @@ -145,11 +145,11 @@ fn str_split_small_str_bigger_delimiter() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_big_str_small_delimiter() { +fn str_split_on_big_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "01234567789abcdefghi?01234567789abcdefghi" "?" + Str.splitOn "01234567789abcdefghi?01234567789abcdefghi" "?" "# ), RocList::from_slice(&[ @@ -162,7 +162,7 @@ fn str_split_big_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch" + Str.splitOn "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch" "# ), RocList::from_slice(&[ @@ -175,11 +175,11 @@ fn str_split_big_str_small_delimiter() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_small_str_small_delimiter() { +fn str_split_on_small_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "J!J!J" "!" + Str.splitOn "J!J!J" "!" "# ), RocList::from_slice(&[RocStr::from("J"), RocStr::from("J"), RocStr::from("J")]), @@ -189,11 +189,11 @@ fn str_split_small_str_small_delimiter() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_bigger_delimiter_big_strs() { +fn str_split_on_bigger_delimiter_big_strs() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "string to split is shorter" "than the delimiter which happens to be very very long" "# @@ -205,11 +205,11 @@ fn str_split_bigger_delimiter_big_strs() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_empty_strs() { +fn str_split_on_empty_strs() { assert_evals_to!( indoc!( r#" - Str.split "" "" + Str.splitOn "" "" "# ), RocList::from_slice(&[RocStr::from("")]), @@ -219,11 +219,11 @@ fn str_split_empty_strs() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_minimal_example() { +fn str_split_on_minimal_example() { assert_evals_to!( indoc!( r#" - Str.split "a," "," + Str.splitOn "a," "," "# ), RocList::from_slice(&[RocStr::from("a"), RocStr::from("")]), @@ -233,11 +233,11 @@ fn str_split_minimal_example() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_small_str_big_delimiter() { +fn str_split_on_small_str_big_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "1---- ---- ---- ---- ----2---- ---- ---- ---- ----" "---- ---- ---- ---- ----" |> List.len @@ -250,7 +250,7 @@ fn str_split_small_str_big_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "1---- ---- ---- ---- ----2---- ---- ---- ---- ----" "---- ---- ---- ---- ----" "# @@ -262,11 +262,11 @@ fn str_split_small_str_big_delimiter() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_small_str_20_char_delimiter() { +fn str_split_on_small_str_20_char_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "3|-- -- -- -- -- -- |4|-- -- -- -- -- -- |" "|-- -- -- -- -- -- |" "# @@ -1548,7 +1548,7 @@ fn issue_2811() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_first_one_char() { +fn str_split_on_first_one_char() { assert_evals_to!( indoc!( r#" @@ -1564,7 +1564,7 @@ fn str_split_first_one_char() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_first_multiple_chars() { +fn str_split_on_first_multiple_chars() { assert_evals_to!( indoc!( r#" @@ -1578,7 +1578,7 @@ fn str_split_first_multiple_chars() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_first_entire_input() { +fn str_split_on_first_entire_input() { assert_evals_to!( indoc!( r#" @@ -1592,7 +1592,7 @@ fn str_split_first_entire_input() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_first_not_found() { +fn str_split_on_first_not_found() { assert_evals_to!( indoc!( r#" @@ -1606,7 +1606,7 @@ fn str_split_first_not_found() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_last_one_char() { +fn str_split_on_last_one_char() { assert_evals_to!( indoc!( r#" @@ -1620,7 +1620,7 @@ fn str_split_last_one_char() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_last_multiple_chars() { +fn str_split_on_last_multiple_chars() { assert_evals_to!( indoc!( r#" @@ -1634,7 +1634,7 @@ fn str_split_last_multiple_chars() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_last_entire_input() { +fn str_split_on_last_entire_input() { assert_evals_to!( indoc!( r#" @@ -1648,7 +1648,7 @@ fn str_split_last_entire_input() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_last_not_found() { +fn str_split_on_last_not_found() { assert_evals_to!( indoc!( r#" @@ -1662,9 +1662,9 @@ fn str_split_last_not_found() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_overlapping_substring_1() { +fn str_split_on_overlapping_substring_1() { assert_evals_to!( - r#"Str.split "aaa" "aa""#, + r#"Str.splitOn "aaa" "aa""#, RocList::from_slice(&[RocStr::from(""), RocStr::from("a")]), RocList ); @@ -1672,9 +1672,9 @@ fn str_split_overlapping_substring_1() { #[test] #[cfg(any(feature = "gen-llvm", feature = "gen-dev"))] -fn str_split_overlapping_substring_2() { +fn str_split_on_overlapping_substring_2() { assert_evals_to!( - r#"Str.split "aaaa" "aa""#, + r#"Str.splitOn "aaaa" "aa""#, RocList::from_slice(&[RocStr::from(""), RocStr::from(""), RocStr::from("")]), RocList ); diff --git a/crates/compiler/test_gen/src/wasm_str.rs b/crates/compiler/test_gen/src/wasm_str.rs index c4ca952eb0..37fe551238 100644 --- a/crates/compiler/test_gen/src/wasm_str.rs +++ b/crates/compiler/test_gen/src/wasm_str.rs @@ -15,11 +15,11 @@ use indoc::indoc; use roc_std::{RocList, RocStr, I128, U128}; #[test] -fn str_split_empty_delimiter() { +fn str_split_on_empty_delimiter() { assert_evals_to!( indoc!( r#" - List.len (Str.split "hello" "") + List.len (Str.splitOn "hello" "") "# ), 1, @@ -28,11 +28,11 @@ fn str_split_empty_delimiter() { } #[test] -fn str_split_bigger_delimiter_small_str() { +fn str_split_on_bigger_delimiter_small_str() { assert_evals_to!( indoc!( r#" - List.len (Str.split "hello" "JJJJ there") + List.len (Str.splitOn "hello" "JJJJ there") "# ), 1, @@ -41,11 +41,11 @@ fn str_split_bigger_delimiter_small_str() { } #[test] -fn str_split_str_concat_repeated() { +fn str_split_on_str_concat_repeated() { assert_evals_to!( indoc!( r#" - when List.first (Str.split "JJJJJ" "JJJJ there") is + when List.first (Str.splitOn "JJJJJ" "JJJJ there") is Ok str -> str |> Str.concat str @@ -64,13 +64,13 @@ fn str_split_str_concat_repeated() { } #[test] -fn str_split_small_str_bigger_delimiter() { +fn str_split_on_small_str_bigger_delimiter() { assert_evals_to!( indoc!( r#" when List.first - (Str.split "JJJ" "0123456789abcdefghi") + (Str.splitOn "JJJ" "0123456789abcdefghi") is Ok str -> str _ -> "" @@ -82,11 +82,11 @@ fn str_split_small_str_bigger_delimiter() { } #[test] -fn str_split_big_str_small_delimiter() { +fn str_split_on_big_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "01234567789abcdefghi?01234567789abcdefghi" "?" + Str.splitOn "01234567789abcdefghi?01234567789abcdefghi" "?" "# ), RocList::from_slice(&[ @@ -99,7 +99,7 @@ fn str_split_big_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch" + Str.splitOn "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch" "# ), RocList::from_slice(&[ @@ -111,11 +111,11 @@ fn str_split_big_str_small_delimiter() { } #[test] -fn str_split_small_str_small_delimiter() { +fn str_split_on_small_str_small_delimiter() { assert_evals_to!( indoc!( r#" - Str.split "J!J!J" "!" + Str.splitOn "J!J!J" "!" "# ), RocList::from_slice(&[RocStr::from("J"), RocStr::from("J"), RocStr::from("J")]), @@ -124,11 +124,11 @@ fn str_split_small_str_small_delimiter() { } #[test] -fn str_split_bigger_delimiter_big_strs() { +fn str_split_on_bigger_delimiter_big_strs() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "string to split is shorter" "than the delimiter which happens to be very very long" "# @@ -139,11 +139,11 @@ fn str_split_bigger_delimiter_big_strs() { } #[test] -fn str_split_empty_strs() { +fn str_split_on_empty_strs() { assert_evals_to!( indoc!( r#" - Str.split "" "" + Str.splitOn "" "" "# ), RocList::from_slice(&[RocStr::from("")]), @@ -152,11 +152,11 @@ fn str_split_empty_strs() { } #[test] -fn str_split_minimal_example() { +fn str_split_on_minimal_example() { assert_evals_to!( indoc!( r#" - Str.split "a," "," + Str.splitOn "a," "," "# ), RocList::from_slice(&[RocStr::from("a"), RocStr::from("")]), @@ -165,11 +165,11 @@ fn str_split_minimal_example() { } #[test] -fn str_split_small_str_big_delimiter() { +fn str_split_on_small_str_big_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "1---- ---- ---- ---- ----2---- ---- ---- ---- ----" "---- ---- ---- ---- ----" |> List.len @@ -182,7 +182,7 @@ fn str_split_small_str_big_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "1---- ---- ---- ---- ----2---- ---- ---- ---- ----" "---- ---- ---- ---- ----" "# @@ -193,11 +193,11 @@ fn str_split_small_str_big_delimiter() { } #[test] -fn str_split_small_str_20_char_delimiter() { +fn str_split_on_small_str_20_char_delimiter() { assert_evals_to!( indoc!( r#" - Str.split + Str.splitOn "3|-- -- -- -- -- -- |4|-- -- -- -- -- -- |" "|-- -- -- -- -- -- |" "# 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 298155bb61..86af90ed21 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 @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.116 (List.569, List.570, List.571): - let List.684 : U64 = 0i64; - let List.685 : U64 = CallByName List.6 List.569; - let List.683 : [C U64, C U64] = CallByName List.80 List.569 List.570 List.571 List.684 List.685; - ret List.683; +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; -procedure List.26 (List.213, List.214, List.215): - let List.677 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215; - let List.680 : U8 = 1i64; - let List.681 : U8 = GetTagId List.677; - let List.682 : Int1 = lowlevel Eq List.680 List.681; - if List.682 then - let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.677; - ret List.216; +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; + ret List.215; else - let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.677; - ret List.217; + let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670; + ret List.216; -procedure List.38 (List.401, List.402): - let List.676 : U64 = CallByName List.6 List.401; - let List.403 : U64 = CallByName Num.77 List.676 List.402; - let List.666 : List U8 = CallByName List.43 List.401 List.403; - ret List.666; +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; -procedure List.43 (List.399, List.400): - let List.674 : U64 = CallByName List.6 List.399; - let List.673 : U64 = CallByName Num.77 List.674 List.400; - let List.668 : {U64, U64} = Struct {List.400, List.673}; - let List.667 : List U8 = CallByName List.49 List.399 List.668; - ret List.667; +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; -procedure List.49 (List.477, List.478): - let List.670 : U64 = StructAtIndex 1 List.478; - let List.671 : U64 = StructAtIndex 0 List.478; - let List.669 : List U8 = CallByName List.72 List.477 List.670 List.671; - ret List.669; +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; procedure List.6 (#Attr.2): - let List.675 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.675; + let List.668 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.668; procedure List.66 (#Attr.2, #Attr.3): - let List.698 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.698; + let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.691; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.672 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.672; + let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.665; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.686 List.572 List.573 List.574 List.575 List.576: - let List.688 : Int1 = CallByName Num.22 List.575 List.576; - if List.688 then - let List.697 : U8 = CallByName List.66 List.572 List.575; - let List.689 : [C U64, C U64] = CallByName Test.4 List.573 List.697; - let List.694 : U8 = 1i64; - let List.695 : U8 = GetTagId List.689; - let List.696 : Int1 = lowlevel Eq List.694 List.695; - if List.696 then - let List.577 : U64 = UnionAtIndex (Id 1) (Index 0) List.689; - let List.692 : U64 = 1i64; - let List.691 : U64 = CallByName Num.51 List.575 List.692; - jump List.686 List.572 List.577 List.574 List.691 List.576; + 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; else - dec List.572; - let List.578 : U64 = UnionAtIndex (Id 0) (Index 0) List.689; - let List.693 : [C U64, C U64] = TagId(0) List.578; - ret List.693; + 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; else - dec List.572; - let List.687 : [C U64, C U64] = TagId(1) List.573; - ret List.687; + dec List.565; + let List.680 : [C U64, C U64] = TagId(1) List.566; + ret List.680; in inc #Derived_gen.0; - jump List.686 #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 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.txt b/crates/compiler/test_mono/generated/call_function_in_empty_list.txt index fa77b25c69..6a1efe1732 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.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.672 List.175 List.176 List.177 List.178 List.179: - let List.674 : Int1 = CallByName Num.22 List.178 List.179; - if List.674 then - let List.678 : [] = CallByName List.66 List.175 List.178; - let List.180 : List {} = CallByName List.284 List.176 List.678 List.177; - let List.677 : U64 = 1i64; - let List.676 : U64 = CallByName Num.51 List.178 List.677; - jump List.672 List.175 List.180 List.177 List.676 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.0; - jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; -procedure List.18 (List.172, List.173, List.174): - let List.670 : U64 = 0i64; - let List.671 : U64 = CallByName List.6 List.172; - let List.669 : List {} = CallByName List.101 List.172 List.173 List.174 List.670 List.671; - ret List.669; +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; -procedure List.284 (List.285, List.286, List.282): - let List.683 : {} = CallByName Test.2 List.286; - let List.682 : List {} = CallByName List.71 List.285 List.683; - ret List.682; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.667 : List {} = CallByName List.68 List.283; - let List.666 : List {} = CallByName List.18 List.281 List.667 List.282; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.680 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.680; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; procedure List.68 (#Attr.2): - let List.685 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.685; + let List.678 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.678; procedure List.71 (#Attr.2, #Attr.3): - let List.684 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.684; + let List.677 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 b8ea3cd44a..3e219530da 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.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.672 List.175 List.176 List.177 List.178 List.179: - let List.674 : Int1 = CallByName Num.22 List.178 List.179; - if List.674 then - let List.678 : [] = CallByName List.66 List.175 List.178; - let List.180 : List [] = CallByName List.284 List.176 List.678 List.177; - let List.677 : U64 = 1i64; - let List.676 : U64 = CallByName Num.51 List.178 List.677; - jump List.672 List.175 List.180 List.177 List.676 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.0; - jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; -procedure List.18 (List.172, List.173, List.174): - let List.670 : U64 = 0i64; - let List.671 : U64 = CallByName List.6 List.172; - let List.669 : List [] = CallByName List.101 List.172 List.173 List.174 List.670 List.671; - ret List.669; +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; -procedure List.284 (List.285, List.286, List.282): - let List.683 : [] = CallByName Test.2 List.286; - let List.682 : List [] = CallByName List.71 List.285 List.683; - ret List.682; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.667 : List [] = CallByName List.68 List.283; - let List.666 : List [] = CallByName List.18 List.281 List.667 List.282; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.680 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.680; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; procedure List.68 (#Attr.2): - let List.685 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.685; + let List.678 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.678; procedure List.71 (#Attr.2, #Attr.3): - let List.684 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.684; + let List.677 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 c70df82c2a..0487b5e2cf 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.101 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : [] = CallByName List.66 List.175 List.178; - let List.180 : [C {}, C *self {{}, []}] = CallByName Test.29 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.9; - jump List.669 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13; + inc #Derived_gen.13; + jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : [C {}, C *self {{}, []}] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 7833ef1ea0..75323ee1c0 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 @@ -2,92 +2,92 @@ procedure Bool.1 (): let Bool.24 : Int1 = false; ret Bool.24; -procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.688 List.175 List.176 List.177 List.178 List.179: - let List.690 : Int1 = CallByName Num.22 List.178 List.179; - if List.690 then - let List.694 : [C List [C List *self, C *self], C [C List *self, C *self]] = CallByName List.66 List.175 List.178; - inc List.694; - let List.180 : List Str = CallByName List.284 List.176 List.694 List.177; - let List.693 : U64 = 1i64; - let List.692 : U64 = CallByName Num.51 List.178 List.693; - jump List.688 List.175 List.180 List.177 List.692 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.0; - jump List.688 #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 List.18 (List.172, List.173, List.174): - let List.686 : U64 = 0i64; - let List.687 : U64 = CallByName List.6 List.172; - let List.685 : List Str = CallByName List.101 List.172 List.173 List.174 List.686 List.687; - ret List.685; +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; -procedure List.2 (List.120, List.121): - let List.680 : U64 = CallByName List.6 List.120; - let List.676 : Int1 = CallByName Num.22 List.121 List.680; - if List.676 then - let List.678 : Str = CallByName List.66 List.120 List.121; - inc List.678; - let List.677 : [C {}, C Str] = TagId(1) List.678; - ret List.677; +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; else - let List.675 : {} = Struct {}; - let List.674 : [C {}, C Str] = TagId(0) List.675; - ret List.674; + let List.668 : {} = Struct {}; + let List.667 : [C {}, C Str] = TagId(0) List.668; + ret List.667; -procedure List.284 (List.285, List.286, List.282): - let List.699 : Str = CallByName Test.10 List.286; - let List.698 : List Str = CallByName List.71 List.285 List.699; - ret List.698; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.683 : List Str = CallByName List.68 List.283; - let List.682 : List Str = CallByName List.18 List.281 List.683 List.282; - ret List.682; +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; procedure List.6 (#Attr.2): - let List.681 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.681; + let List.674 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.674; procedure List.6 (#Attr.2): - let List.696 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.696; + let List.689 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.689; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; procedure List.66 (#Attr.2, #Attr.3): - let List.695 : [C List [C List *self, C *self], C [C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.695; + 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; procedure List.68 (#Attr.2): - let List.701 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.701; + let List.694 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.694; procedure List.71 (#Attr.2, #Attr.3): - let List.700 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.700; + let List.693 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.693; -procedure List.9 (List.392): - let List.673 : U64 = 0i64; - let List.666 : [C {}, C Str] = CallByName List.2 List.392 List.673; - let List.670 : U8 = 1i64; - let List.671 : U8 = GetTagId List.666; - let List.672 : Int1 = lowlevel Eq List.670 List.671; - if List.672 then - let List.393 : Str = UnionAtIndex (Id 1) (Index 0) List.666; - let List.667 : [C {}, C Str] = TagId(1) List.393; - ret List.667; +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; else - dec List.666; - let List.669 : {} = Struct {}; - let List.668 : [C {}, C Str] = TagId(0) List.669; - ret List.668; + dec List.659; + let List.662 : {} = Struct {}; + let List.661 : [C {}, C Str] = TagId(0) List.662; + ret List.661; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 a38e8df977..fba7754e40 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.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.659 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.659; 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 f8c934a296..84df43f8d9 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 @@ -2,35 +2,35 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.101 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Int1 = CallByName List.66 List.175 List.178; - let List.180 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.5; - jump List.669 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9; + inc #Derived_gen.0; + jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : [, C *self Int1, C *self Int1] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; @@ -47,7 +47,7 @@ procedure Str.3 (#Attr.2, #Attr.3): procedure Test.1 (Test.5): ret Test.5; -procedure Test.11 (#Derived_gen.3, #Derived_gen.4): +procedure Test.11 (#Derived_gen.8, #Derived_gen.9): joinpoint Test.27 Test.12 #Attr.12: let Test.34 : Int1 = UnionAtIndex (Id 2) (Index 1) #Attr.12; let Test.33 : [, C *self Int1, C *self Int1] = UnionAtIndex (Id 2) (Index 0) #Attr.12; @@ -87,7 +87,7 @@ procedure Test.11 (#Derived_gen.3, #Derived_gen.4): decref #Attr.12; jump #Derived_gen.12; in - jump Test.27 #Derived_gen.3 #Derived_gen.4; + jump Test.27 #Derived_gen.8 #Derived_gen.9; procedure Test.2 (Test.13): ret Test.13; diff --git a/crates/compiler/test_mono/generated/dict.txt b/crates/compiler/test_mono/generated/dict.txt index 54e4799d80..b82344ef99 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.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.659 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.659; procedure Num.75 (#Attr.2, #Attr.3): let Num.281 : 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 1359a02e4c..3f6643da3b 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 @@ -2,25 +2,25 @@ procedure Bool.1 (): let Bool.23 : Int1 = false; ret Bool.23; -procedure List.2 (List.120, List.121): - let List.672 : U64 = CallByName List.6 List.120; - let List.668 : Int1 = CallByName Num.22 List.121 List.672; - if List.668 then - let List.670 : {} = CallByName List.66 List.120 List.121; - let List.669 : [C {}, C {}] = TagId(1) List.670; - ret List.669; +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; else - let List.667 : {} = Struct {}; - let List.666 : [C {}, C {}] = TagId(0) List.667; - ret List.666; + let List.660 : {} = Struct {}; + let List.659 : [C {}, C {}] = TagId(0) List.660; + ret List.659; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.66 (#Attr.2, #Attr.3): - let List.671 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.671; + let List.664 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.664; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 4ccd82f4f5..93c5591f8a 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.136, List.137): - let List.669 : U64 = 1i64; - let List.667 : List U8 = CallByName List.70 List.136 List.669; - let List.666 : List U8 = CallByName List.71 List.667 List.137; - ret List.666; +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; procedure List.70 (#Attr.2, #Attr.3): - let List.670 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.670; + let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.663; procedure List.71 (#Attr.2, #Attr.3): - let List.668 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.668; + let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.661; 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 89d9cb30ef..cbe4549671 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 @@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.71 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.26; - jump List.669 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + inc #Derived_gen.29; + jump List.688 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33; -procedure List.101 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38): - joinpoint List.695 List.175 List.176 List.177 List.178 List.179: - let List.697 : Int1 = CallByName Num.22 List.178 List.179; - if List.697 then - let List.701 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.701; - let List.180 : List U8 = CallByName Test.71 List.176 List.701; - let List.700 : U64 = 1i64; - let List.699 : U64 = CallByName Num.51 List.178 List.700; - jump List.695 List.175 List.180 List.177 List.699 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.34; - jump List.695 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38; + inc #Derived_gen.37; + jump List.662 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.18 (List.172, List.173, List.174): - let List.693 : U64 = 0i64; - let List.694 : U64 = CallByName List.6 List.172; - let List.692 : List U8 = CallByName List.101 List.172 List.173 List.174 List.693 List.694; - ret List.692; +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; -procedure List.4 (List.136, List.137): - let List.714 : U64 = 1i64; - let List.713 : List U8 = CallByName List.70 List.136 List.714; - let List.712 : List U8 = CallByName List.71 List.713 List.137; - ret List.712; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.6 (#Attr.2): - let List.717 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.717; + let List.710 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.710; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.66 (#Attr.2, #Attr.3): - let List.702 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.702; + let List.695 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.695; procedure List.70 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.708; + let List.701 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.701; procedure List.71 (#Attr.2, #Attr.3): - let List.706 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.706; + let List.699 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.699; procedure List.8 (#Attr.2, #Attr.3): - let List.716 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.716; + let List.709 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.709; procedure Num.127 (#Attr.2): let Num.286 : 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 06f609dfa8..f97f1c8bdc 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 @@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.71 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.16; - jump List.669 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.4 (List.136, List.137): - let List.688 : U64 = 1i64; - let List.687 : List U8 = CallByName List.70 List.136 List.688; - let List.686 : List U8 = CallByName List.71 List.687 List.137; - ret List.686; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.682; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.680; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.690; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; procedure Num.127 (#Attr.2): let Num.282 : 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 9c7bb9e82a..311b88e7b2 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 @@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.71 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.20; - jump List.669 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + jump List.662 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.4 (List.136, List.137): - let List.688 : U64 = 1i64; - let List.687 : List U8 = CallByName List.70 List.136 List.688; - let List.686 : List U8 = CallByName List.71 List.687 List.137; - ret List.686; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.682; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.680; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.690; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; procedure Num.127 (#Attr.2): let Num.282 : 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 a6734fb482..787973e3a1 100644 --- a/crates/compiler/test_mono/generated/encode_derived_string.txt +++ b/crates/compiler/test_mono/generated/encode_derived_string.txt @@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.4 (List.136, List.137): - let List.676 : U64 = 1i64; - let List.675 : List U8 = CallByName List.70 List.136 List.676; - let List.674 : List U8 = CallByName List.71 List.675 List.137; - ret List.674; +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; procedure List.70 (#Attr.2, #Attr.3): - let List.670 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.670; + let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.663; procedure List.71 (#Attr.2, #Attr.3): - let List.668 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.668; + let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.661; procedure List.8 (#Attr.2, #Attr.3): - let List.678 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.678; + let List.671 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.671; procedure Num.127 (#Attr.2): let Num.282 : 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 8eb3d681ad..eaef60877a 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 @@ -40,58 +40,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Str = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.64 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.13; - jump List.669 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; + inc #Derived_gen.22; + jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; procedure List.13 (#Attr.2, #Attr.3): - let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.692; + let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.685; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.4 (List.136, List.137): - let List.688 : U64 = 1i64; - let List.687 : List U8 = CallByName List.70 List.136 List.688; - let List.686 : List U8 = CallByName List.71 List.687 List.137; - ret List.686; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.682; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.680; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.690; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; procedure Num.127 (#Attr.2): let Num.282 : 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 1cc70bcb15..e08ecc31d5 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 @@ -43,58 +43,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Str = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.64 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.23; - jump List.669 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + jump List.662 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; procedure List.13 (#Attr.2, #Attr.3): - let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.692; + let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.685; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.4 (List.136, List.137): - let List.688 : U64 = 1i64; - let List.687 : List U8 = CallByName List.70 List.136 List.688; - let List.686 : List U8 = CallByName List.71 List.687 List.137; - ret List.686; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.682; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.680; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.690; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; procedure Num.127 (#Attr.2): let Num.282 : 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 a53ca1da8f..cb904e317d 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -304,7 +304,7 @@ procedure Dict.72 (Dict.412, Dict.413, Dict.414): let Dict.854 : {U64, U32} = CallByName Dict.73 Dict.412 Dict.417 Dict.416; ret Dict.854; -procedure Dict.73 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23): +procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18): joinpoint Dict.855 Dict.418 Dict.419 Dict.420: let Dict.421 : {U32, U32} = CallByName Dict.22 Dict.418 Dict.419; let Dict.862 : U32 = StructAtIndex 1 Dict.421; @@ -319,8 +319,8 @@ procedure Dict.73 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23): let Dict.856 : {U64, U32} = Struct {Dict.419, Dict.420}; ret Dict.856; in - inc #Derived_gen.21; - jump Dict.855 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; + inc #Derived_gen.16; + jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56): joinpoint Dict.761 Dict.422 Dict.423 Dict.424: @@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, I64} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.12; - jump List.669 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + inc #Derived_gen.40; + jump List.726 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; -procedure List.101 (#Derived_gen.57, #Derived_gen.58, #Derived_gen.59, #Derived_gen.60, #Derived_gen.61): - joinpoint List.733 List.175 List.176 List.177 List.178 List.179: - let List.735 : Int1 = CallByName Num.22 List.178 List.179; - if List.735 then - let List.739 : {Str, I64} = CallByName List.66 List.175 List.178; - inc List.739; - let List.180 : {Str, Int1} = CallByName Dict.188 List.176 List.739 List.177; - let List.738 : U64 = 1i64; - let List.737 : U64 = CallByName Num.51 List.178 List.738; - jump List.733 List.175 List.180 List.177 List.737 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.57; - jump List.733 #Derived_gen.57 #Derived_gen.58 #Derived_gen.59 #Derived_gen.60 #Derived_gen.61; + inc #Derived_gen.61; + jump List.662 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65; -procedure List.102 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35): - joinpoint List.708 List.184 List.185 List.186 List.187 List.188: - let List.710 : Int1 = CallByName Num.22 List.187 List.188; - if List.710 then - let List.714 : {Str, I64} = CallByName List.66 List.184 List.187; - inc List.714; - let List.189 : List {U32, U32} = CallByName Dict.406 List.185 List.714 List.187 List.186; - let List.713 : U64 = 1i64; - let List.712 : U64 = CallByName Num.51 List.187 List.713; - jump List.708 List.184 List.189 List.186 List.712 List.188; +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; else - dec List.184; - ret List.185; + dec List.183; + ret List.184; in - inc #Derived_gen.31; - jump List.708 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35; + inc #Derived_gen.21; + jump List.701 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; -procedure List.11 (List.150, List.151): - let List.728 : List {U32, U32} = CallByName List.68 List.151; - let List.727 : List {U32, U32} = CallByName List.99 List.150 List.151 List.728; - ret List.727; +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; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.18 (List.172, List.173, List.174): - let List.731 : U64 = 0i64; - let List.732 : U64 = CallByName List.6 List.172; - let List.730 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.731 List.732; - ret List.730; - -procedure List.3 (List.128, List.129, List.130): - let List.692 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.128 List.129 List.130; - let List.691 : List {U32, U32} = StructAtIndex 0 List.692; - ret List.691; - -procedure List.3 (List.128, List.129, List.130): - let List.694 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.128 List.129 List.130; - let List.693 : List {Str, I64} = StructAtIndex 0 List.694; - let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.694; - dec #Derived_gen.71; - ret List.693; - -procedure List.4 (List.136, List.137): - let List.703 : U64 = 1i64; - let List.701 : List {Str, I64} = CallByName List.70 List.136 List.703; - let List.700 : List {Str, I64} = CallByName List.71 List.701 List.137; - ret List.700; - -procedure List.6 (#Attr.2): - let List.682 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.682; - -procedure List.6 (#Attr.2): - let List.729 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.729; - -procedure List.6 (#Attr.2): - let List.741 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.741; - -procedure List.64 (List.125, List.126, List.127): - let List.690 : U64 = CallByName List.6 List.125; - let List.687 : Int1 = CallByName Num.22 List.126 List.690; - if List.687 then - let List.688 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.125 List.126 List.127; - ret List.688; - else - let List.686 : {List {U32, U32}, {U32, U32}} = Struct {List.125, List.127}; - ret List.686; - -procedure List.64 (List.125, List.126, List.127): - let List.699 : U64 = CallByName List.6 List.125; - let List.696 : Int1 = CallByName Num.22 List.126 List.699; - if List.696 then - let List.697 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.125 List.126 List.127; - ret List.697; - else - let List.695 : {List {Str, I64}, {Str, I64}} = Struct {List.125, List.127}; - ret List.695; - -procedure List.66 (#Attr.2, #Attr.3): - let List.740 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.740; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.689 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.689; - -procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.698 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.698; - -procedure List.68 (#Attr.2): - let List.726 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; - ret List.726; - -procedure List.70 (#Attr.2, #Attr.3): - let List.704 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.704; - -procedure List.71 (#Attr.2, #Attr.3): - let List.702 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.702; - -procedure List.71 (#Attr.2, #Attr.3): - let List.723 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; +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; -procedure List.83 (List.181, List.182, List.183): - let List.706 : U64 = 0i64; - let List.707 : U64 = CallByName List.6 List.181; - let List.705 : List {U32, U32} = CallByName List.102 List.181 List.182 List.183 List.706 List.707; - ret List.705; +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; -procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28): - joinpoint List.717 List.152 List.153 List.154: - let List.725 : U64 = 0i64; - let List.719 : Int1 = CallByName Num.24 List.153 List.725; - if List.719 then - let List.724 : U64 = 1i64; - let List.721 : U64 = CallByName Num.75 List.153 List.724; - let List.722 : List {U32, U32} = CallByName List.71 List.154 List.152; - jump List.717 List.152 List.721 List.722; +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; + dec #Derived_gen.71; + ret List.686; + +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; + +procedure List.6 (#Attr.2): + let List.675 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.675; + +procedure List.6 (#Attr.2): + let List.722 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.722; + +procedure List.6 (#Attr.2): + let List.734 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.734; + +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; + else + let List.679 : {List {U32, U32}, {U32, U32}} = Struct {List.124, List.126}; + ret List.679; + +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; + else + let List.688 : {List {Str, I64}, {Str, I64}} = Struct {List.124, List.126}; + ret List.688; + +procedure List.66 (#Attr.2, #Attr.3): + let List.733 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.733; + +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; + +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; + +procedure List.68 (#Attr.2): + let List.719 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.719; + +procedure List.70 (#Attr.2, #Attr.3): + let List.697 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.697; + +procedure List.71 (#Attr.2, #Attr.3): + let List.695 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.695; + +procedure List.71 (#Attr.2, #Attr.3): + let List.716 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; + +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; + +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; else - ret List.154; + ret List.153; in - jump List.717 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28; + jump List.710 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; procedure Num.131 (#Attr.2): let Num.289 : 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 b345f92a8d..8858de6a1b 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -135,35 +135,35 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : I64 = CallByName List.66 List.175 List.178; - let List.180 : {Str, Int1} = CallByName Inspect.160 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.11; - jump List.669 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15; + inc #Derived_gen.8; + jump List.662 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; 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/inspect_derived_nested_record_string.txt b/crates/compiler/test_mono/generated/inspect_derived_nested_record_string.txt index 9f0abfdacf..8ce25e4434 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 @@ -221,67 +221,67 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.681 List.175 List.176 List.177 List.178 List.179: - let List.683 : Int1 = CallByName Num.22 List.178 List.179; - if List.683 then - let List.687 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.687; - let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.687; - let List.686 : U64 = 1i64; - let List.685 : U64 = CallByName Num.51 List.178 List.686; - jump List.681 List.175 List.180 List.177 List.685 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.26; - jump List.681 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + inc #Derived_gen.30; + jump List.662 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34; -procedure List.101 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.43; - jump List.669 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; + jump List.674 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.18 (List.172, List.173, List.174): - let List.679 : U64 = 0i64; - let List.680 : U64 = CallByName List.6 List.172; - let List.678 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.679 List.680; - ret List.678; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.6 (#Attr.2): - let List.689 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.689; + let List.682 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.682; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.66 (#Attr.2, #Attr.3): - let List.688 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.688; + let List.681 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.681; 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.txt b/crates/compiler/test_mono/generated/inspect_derived_record.txt index 6fd250e85e..bc8d69eaf1 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -161,36 +161,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {[C I64, C Decimal], Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.26; - jump List.669 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30; + inc #Derived_gen.22; + jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; 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_one_field_string.txt b/crates/compiler/test_mono/generated/inspect_derived_record_one_field_string.txt index b98b67c722..c49f518ebc 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 @@ -139,36 +139,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.16; - jump List.669 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + inc #Derived_gen.12; + jump List.662 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 bfb8b2d9c7..76bd72a9ed 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 @@ -146,36 +146,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : {Str, Str} = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : {Str, Int1} = CallByName Inspect.233 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.20; - jump List.669 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24; + inc #Derived_gen.16; + jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 ec0144e6f5..b7436949b8 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 @@ -132,43 +132,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.119): - let List.679 : U64 = CallByName List.6 List.119; - let List.680 : U64 = 0i64; - let List.678 : Int1 = CallByName Bool.11 List.679 List.680; - ret List.678; +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; -procedure List.101 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Str = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : Str = CallByName Inspect.210 List.176 List.675; - dec List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.14; - jump List.669 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; + jump List.662 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : Str = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 9b9f4b0112..15ad95ed93 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 @@ -135,43 +135,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296): procedure Inspect.64 (Inspect.302): ret Inspect.302; -procedure List.1 (List.119): - let List.679 : U64 = CallByName List.6 List.119; - let List.680 : U64 = 0i64; - let List.678 : Int1 = CallByName Bool.11 List.679 List.680; - ret List.678; +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; -procedure List.101 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Str = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : Str = CallByName Inspect.210 List.176 List.675; - dec List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.15; - jump List.669 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19; + inc #Derived_gen.13; + jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : Str = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 b11ba49d9f..8825be31f6 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.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.659 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.659; 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/issue_2583_specialize_errors_behind_unified_branches.txt b/crates/compiler/test_mono/generated/issue_2583_specialize_errors_behind_unified_branches.txt index 8b05775b70..58fbaab489 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 @@ -6,40 +6,40 @@ procedure Bool.2 (): let Bool.23 : Int1 = true; ret Bool.23; -procedure List.2 (List.120, List.121): - let List.680 : U64 = CallByName List.6 List.120; - let List.676 : Int1 = CallByName Num.22 List.121 List.680; - if List.676 then - let List.678 : I64 = CallByName List.66 List.120 List.121; - let List.677 : [C {}, C I64] = TagId(1) List.678; - ret List.677; +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; else - let List.675 : {} = Struct {}; - let List.674 : [C {}, C I64] = TagId(0) List.675; - ret List.674; + let List.668 : {} = Struct {}; + let List.667 : [C {}, C I64] = TagId(0) List.668; + ret List.667; procedure List.6 (#Attr.2): - let List.681 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.681; + let List.674 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.674; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; -procedure List.9 (List.392): - let List.673 : U64 = 0i64; - let List.666 : [C {}, C I64] = CallByName List.2 List.392 List.673; - let List.670 : U8 = 1i64; - let List.671 : U8 = GetTagId List.666; - let List.672 : Int1 = lowlevel Eq List.670 List.671; - if List.672 then - let List.393 : I64 = UnionAtIndex (Id 1) (Index 0) List.666; - let List.667 : [C Int1, C I64] = TagId(1) List.393; - ret List.667; +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; else - let List.669 : Int1 = true; - let List.668 : [C Int1, C I64] = TagId(0) List.669; - ret List.668; + let List.662 : Int1 = true; + let List.661 : [C Int1, C I64] = TagId(0) List.662; + ret List.661; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 baf409503b..272442c9db 100644 --- a/crates/compiler/test_mono/generated/issue_4770.txt +++ b/crates/compiler/test_mono/generated/issue_4770.txt @@ -6,118 +6,118 @@ procedure Bool.2 (): let Bool.24 : Int1 = true; ret Bool.24; -procedure List.106 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6): - joinpoint List.704 List.291 List.292 List.293 List.294 List.295 List.296: - let List.706 : Int1 = CallByName Num.22 List.295 List.296; - if List.706 then - let List.712 : [C I64, C List *self] = CallByName List.66 List.291 List.295; - inc List.712; - let List.713 : [C I64, C List *self] = CallByName List.66 List.292 List.295; - inc List.713; - let List.297 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.712 List.713; - let List.708 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.293 List.297; - let List.710 : U64 = 1i64; - let List.709 : U64 = CallByName Num.51 List.295 List.710; - jump List.704 List.291 List.292 List.708 List.294 List.709 List.296; +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; else dec List.291; - dec List.292; - ret List.293; + dec List.290; + ret List.292; in - inc #Derived_gen.1; - inc #Derived_gen.2; - jump List.704 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6; + 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; -procedure List.116 (List.569, List.570, List.571): - let List.680 : U64 = 0i64; - let List.681 : U64 = CallByName List.6 List.569; - let List.679 : [C {}, C {}] = CallByName List.80 List.569 List.570 List.571 List.680 List.681; - ret List.679; +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; -procedure List.23 (List.287, List.288, List.289): - let List.716 : U64 = CallByName List.6 List.287; - let List.717 : U64 = CallByName List.6 List.288; - let List.290 : U64 = CallByName Num.148 List.716 List.717; - let List.702 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.290; - let List.703 : U64 = 0i64; - let List.701 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.106 List.287 List.288 List.702 List.289 List.703 List.290; - ret List.701; - -procedure List.248 (List.668, List.249, List.247): - let List.698 : Int1 = CallByName Test.1 List.249; - if List.698 then - let List.700 : {} = Struct {}; - let List.699 : [C {}, C {}] = TagId(1) List.700; - ret List.699; - else - let List.697 : {} = Struct {}; - let List.696 : [C {}, C {}] = TagId(0) List.697; - ret List.696; - -procedure List.56 (List.246, List.247): - let List.677 : {} = Struct {}; - let List.669 : [C {}, C {}] = CallByName List.116 List.246 List.677 List.247; - let List.674 : U8 = 1i64; - let List.675 : U8 = GetTagId List.669; - let List.676 : Int1 = lowlevel Eq List.674 List.675; - if List.676 then - let List.670 : Int1 = CallByName Bool.2; - ret List.670; - else - let List.671 : Int1 = CallByName Bool.1; - ret List.671; - -procedure List.6 (#Attr.2): - let List.667 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.667; - -procedure List.6 (#Attr.2): - let List.695 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.695; - -procedure List.66 (#Attr.2, #Attr.3): - let List.694 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; +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; + else + let List.690 : {} = Struct {}; + let List.689 : [C {}, C {}] = TagId(0) List.690; + ret List.689; + +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; + else + let List.664 : Int1 = CallByName Bool.1; + ret List.664; + +procedure List.6 (#Attr.2): + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; + +procedure List.6 (#Attr.2): + let List.688 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.688; + procedure List.66 (#Attr.2, #Attr.3): - let List.714 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.714; + let List.687 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.687; + +procedure List.66 (#Attr.2, #Attr.3): + let List.707 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; procedure List.68 (#Attr.2): - let List.715 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; - ret List.715; + let List.708 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.708; procedure List.71 (#Attr.2, #Attr.3): - let List.711 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.711; + let List.704 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.704; -procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11): - joinpoint List.682 List.572 List.573 List.574 List.575 List.576: - let List.684 : Int1 = CallByName Num.22 List.575 List.576; - if List.684 then - let List.693 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.572 List.575; - inc List.693; - let List.685 : [C {}, C {}] = CallByName List.248 List.573 List.693 List.574; - let List.690 : U8 = 1i64; - let List.691 : U8 = GetTagId List.685; - let List.692 : Int1 = lowlevel Eq List.690 List.691; - if List.692 then - let List.577 : {} = UnionAtIndex (Id 1) (Index 0) List.685; - let List.688 : U64 = 1i64; - let List.687 : U64 = CallByName Num.51 List.575 List.688; - jump List.682 List.572 List.577 List.574 List.687 List.576; +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; else - dec List.572; - let List.578 : {} = UnionAtIndex (Id 0) (Index 0) List.685; - let List.689 : [C {}, C {}] = TagId(0) List.578; - ret List.689; + 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; else - dec List.572; - let List.683 : [C {}, C {}] = TagId(1) List.573; - ret List.683; + dec List.565; + let List.676 : [C {}, C {}] = TagId(1) List.566; + ret List.676; in - inc #Derived_gen.7; - jump List.682 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11; + inc #Derived_gen.0; + jump List.675 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure Num.148 (Num.225, Num.226): let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226; @@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3): let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3; ret Num.284; -procedure Test.1 (#Derived_gen.0): +procedure Test.1 (#Derived_gen.5): joinpoint Test.26 Test.6: let Test.65 : [C I64, C List *self] = StructAtIndex 1 Test.6; let Test.66 : U8 = 0i64; @@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.0): let Test.44 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.45, Test.46}; jump Test.26 Test.44; in - jump Test.26 #Derived_gen.0; + jump Test.26 #Derived_gen.5; procedure Test.15 (Test.16, Test.17): let Test.36 : {[C I64, C List *self], [C I64, C List *self]} = Struct {Test.16, Test.17}; 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 7ee4570646..f4369d2965 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.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : [C *self, ] = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : [, C {[C *self, ], *self}] = CallByName Test.7 List.176 List.675; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.0; - jump List.669 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : [, C {[C *self, ], *self}] = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.677 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.677; + let List.670 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.670; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 45011522c9..a5c611f6db 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.136, List.137): - let List.669 : U64 = 1i64; - let List.667 : List I64 = CallByName List.70 List.136 List.669; - let List.666 : List I64 = CallByName List.71 List.667 List.137; - ret List.666; +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; procedure List.70 (#Attr.2, #Attr.3): - let List.670 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.670; + let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.663; procedure List.71 (#Attr.2, #Attr.3): - let List.668 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.668; + let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.661; 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 e7eb8eaae3..f49997065b 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.136, List.137): - let List.669 : U64 = 1i64; - let List.667 : List I64 = CallByName List.70 List.136 List.669; - let List.666 : List I64 = CallByName List.71 List.667 List.137; - ret List.666; +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; procedure List.70 (#Attr.2, #Attr.3): - let List.670 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.670; + let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.663; procedure List.71 (#Attr.2, #Attr.3): - let List.668 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.668; + let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.661; 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 d6f5d47bf9..674c2431f8 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.128, List.129, List.130): - let List.669 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; - let List.668 : List I64 = StructAtIndex 0 List.669; - ret List.668; +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; procedure List.6 (#Attr.2): - let List.667 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.667; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; -procedure List.64 (List.125, List.126, List.127): - let List.674 : U64 = CallByName List.6 List.125; - let List.671 : Int1 = CallByName Num.22 List.126 List.674; - if List.671 then - let List.672 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; - ret List.672; +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; else - let List.670 : {List I64, I64} = Struct {List.125, List.127}; - ret List.670; + let List.663 : {List I64, I64} = Struct {List.124, List.126}; + ret List.663; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.673 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.673; + let List.666 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.666; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 0f2234e876..550ec2d287 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.120, List.121): - let List.672 : U64 = CallByName List.6 List.120; - let List.668 : Int1 = CallByName Num.22 List.121 List.672; - if List.668 then - let List.670 : I64 = CallByName List.66 List.120 List.121; - let List.669 : [C {}, C I64] = TagId(1) List.670; - ret List.669; +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; else - let List.667 : {} = Struct {}; - let List.666 : [C {}, C I64] = TagId(0) List.667; - ret List.666; + let List.660 : {} = Struct {}; + let List.659 : [C {}, C I64] = TagId(0) List.660; + ret List.659; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.66 (#Attr.2, #Attr.3): - let List.671 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.671; + let List.664 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.664; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 e5f481c5d1..78e2a7dede 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.666 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.666; + let List.659 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.659; procedure List.6 (#Attr.2): - let List.667 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.667; + let List.660 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.660; procedure Num.19 (#Attr.2, #Attr.3): let Num.281 : 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 0744d83605..004c78e32c 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.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.680 List.175 List.176 List.177 List.178 List.179: - let List.682 : Int1 = CallByName Num.22 List.178 List.179; - if List.682 then - let List.686 : Str = CallByName List.66 List.175 List.178; - inc List.686; - let List.180 : List Str = CallByName List.284 List.176 List.686 List.177; - dec List.686; - let List.685 : U64 = 1i64; - let List.684 : U64 = CallByName Num.51 List.178 List.685; - jump List.680 List.175 List.180 List.177 List.684 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.3; - jump List.680 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + jump List.673 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; -procedure List.18 (List.172, List.173, List.174): - let List.678 : U64 = 0i64; - let List.679 : U64 = CallByName List.6 List.172; - let List.677 : List Str = CallByName List.101 List.172 List.173 List.174 List.678 List.679; - ret List.677; +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; -procedure List.2 (List.120, List.121): - let List.672 : U64 = CallByName List.6 List.120; - let List.668 : Int1 = CallByName Num.22 List.121 List.672; - if List.668 then - let List.670 : Str = CallByName List.66 List.120 List.121; - inc List.670; - let List.669 : [C {}, C Str] = TagId(1) List.670; - ret List.669; +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; else - let List.667 : {} = Struct {}; - let List.666 : [C {}, C Str] = TagId(0) List.667; - ret List.666; + let List.660 : {} = Struct {}; + let List.659 : [C {}, C Str] = TagId(0) List.660; + ret List.659; -procedure List.284 (List.285, List.286, List.282): - let List.689 : Str = CallByName Test.3 List.286; - let List.688 : List Str = CallByName List.71 List.285 List.689; - ret List.688; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.675 : List Str = CallByName List.68 List.283; - let List.674 : List Str = CallByName List.18 List.281 List.675 List.282; - ret List.674; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.66 (#Attr.2, #Attr.3): - let List.671 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.671; + let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.664; procedure List.68 (#Attr.2): - let List.691 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.691; + let List.684 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.684; procedure List.71 (#Attr.2, #Attr.3): - let List.690 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.690; + let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 ab29929666..5efc2e0d6d 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.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7): - joinpoint List.680 List.175 List.176 List.177 List.178 List.179: - let List.682 : Int1 = CallByName Num.22 List.178 List.179; - if List.682 then - let List.686 : Str = CallByName List.66 List.175 List.178; - inc List.686; - let List.180 : List Str = CallByName List.284 List.176 List.686 List.177; - let List.685 : U64 = 1i64; - let List.684 : U64 = CallByName Num.51 List.178 List.685; - jump List.680 List.175 List.180 List.177 List.684 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.3; - jump List.680 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; + inc #Derived_gen.0; + jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; -procedure List.18 (List.172, List.173, List.174): - let List.678 : U64 = 0i64; - let List.679 : U64 = CallByName List.6 List.172; - let List.677 : List Str = CallByName List.101 List.172 List.173 List.174 List.678 List.679; - ret List.677; +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; -procedure List.2 (List.120, List.121): - let List.672 : U64 = CallByName List.6 List.120; - let List.668 : Int1 = CallByName Num.22 List.121 List.672; - if List.668 then - let List.670 : Str = CallByName List.66 List.120 List.121; - inc List.670; - let List.669 : [C {}, C Str] = TagId(1) List.670; - ret List.669; +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; else - let List.667 : {} = Struct {}; - let List.666 : [C {}, C Str] = TagId(0) List.667; - ret List.666; + let List.660 : {} = Struct {}; + let List.659 : [C {}, C Str] = TagId(0) List.660; + ret List.659; -procedure List.284 (List.285, List.286, List.282): - let List.689 : Str = CallByName Test.3 List.286; - let List.688 : List Str = CallByName List.71 List.285 List.689; - ret List.688; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.675 : List Str = CallByName List.68 List.283; - let List.674 : List Str = CallByName List.18 List.281 List.675 List.282; - ret List.674; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; procedure List.66 (#Attr.2, #Attr.3): - let List.671 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.671; + let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.664; procedure List.68 (#Attr.2): - let List.691 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.691; + let List.684 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.684; procedure List.71 (#Attr.2, #Attr.3): - let List.690 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.690; + let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.683; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 5ae1005b54..982d5a1355 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.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.672 List.175 List.176 List.177 List.178 List.179: - let List.674 : Int1 = CallByName Num.22 List.178 List.179; - if List.674 then - let List.678 : U8 = CallByName List.66 List.175 List.178; - let List.180 : List U8 = CallByName List.284 List.176 List.678 List.177; - let List.677 : U64 = 1i64; - let List.676 : U64 = CallByName Num.51 List.178 List.677; - jump List.672 List.175 List.180 List.177 List.676 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.0; - jump List.672 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; + inc #Derived_gen.3; + jump List.665 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7; -procedure List.18 (List.172, List.173, List.174): - let List.670 : U64 = 0i64; - let List.671 : U64 = CallByName List.6 List.172; - let List.669 : List U8 = CallByName List.101 List.172 List.173 List.174 List.670 List.671; - ret List.669; +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; -procedure List.284 (List.285, List.286, List.282): - let List.685 : U8 = GetTagId List.282; - joinpoint List.686 List.683: - let List.682 : List U8 = CallByName List.71 List.285 List.683; - ret List.682; +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; in - switch List.685: + switch List.678: case 0: - let List.687 : U8 = CallByName Test.4 List.286 List.282; - jump List.686 List.687; + let List.680 : U8 = CallByName Test.4 List.285 List.281; + jump List.679 List.680; case 1: - let List.687 : U8 = CallByName Test.6 List.286 List.282; - jump List.686 List.687; + let List.680 : U8 = CallByName Test.6 List.285 List.281; + jump List.679 List.680; default: - let List.687 : U8 = CallByName Test.8 List.286; - jump List.686 List.687; + let List.680 : U8 = CallByName Test.8 List.285; + jump List.679 List.680; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.667 : List U8 = CallByName List.68 List.283; - let List.666 : List U8 = CallByName List.18 List.281 List.667 List.282; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.680 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.680; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; procedure List.68 (#Attr.2): - let List.688 : List U8 = lowlevel ListWithCapacity #Attr.2; - ret List.688; + let List.681 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.681; procedure List.71 (#Attr.2, #Attr.3): - let List.684 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.684; + let List.677 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; procedure Num.19 (#Attr.2, #Attr.3): let Num.283 : 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 d7a359764d..e899861ea3 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.128, List.129, List.130): - let List.667 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; - let List.666 : List I64 = StructAtIndex 0 List.667; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; -procedure List.64 (List.125, List.126, List.127): - let List.672 : U64 = CallByName List.6 List.125; - let List.669 : Int1 = CallByName Num.22 List.126 List.672; - if List.669 then - let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; - ret List.670; +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; else - let List.668 : {List I64, I64} = Struct {List.125, List.127}; - ret List.668; + let List.661 : {List I64, I64} = Struct {List.124, List.126}; + ret List.661; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.671; + let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.664; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 67654d1846..58d4f3302f 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.668 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.668; + let List.661 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.661; -procedure List.59 (List.387): - let List.667 : {} = Struct {}; - let List.666 : List I64 = CallByName List.28 List.387 List.667; - ret List.666; +procedure List.59 (List.386): + let List.660 : {} = Struct {}; + let List.659 : List I64 = CallByName List.28 List.386 List.660; + ret List.659; procedure Num.46 (#Attr.2, #Attr.3): let Num.281 : 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 4254033309..8838750d6b 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.120, List.121): - let List.688 : U64 = CallByName List.6 List.120; - let List.685 : Int1 = CallByName Num.22 List.121 List.688; - if List.685 then - let List.687 : I64 = CallByName List.66 List.120 List.121; - let List.686 : [C {}, C I64] = TagId(1) List.687; - ret List.686; +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; else - let List.684 : {} = Struct {}; - let List.683 : [C {}, C I64] = TagId(0) List.684; - ret List.683; + let List.677 : {} = Struct {}; + let List.676 : [C {}, C I64] = TagId(0) List.677; + ret List.676; -procedure List.3 (List.128, List.129, List.130): - let List.675 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; - let List.674 : List I64 = StructAtIndex 0 List.675; - ret List.674; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; -procedure List.64 (List.125, List.126, List.127): - let List.672 : U64 = CallByName List.6 List.125; - let List.669 : Int1 = CallByName Num.22 List.126 List.672; - if List.669 then - let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; - ret List.670; +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; else - let List.668 : {List I64, I64} = Struct {List.125, List.127}; - ret List.668; + let List.661 : {List I64, I64} = Struct {List.124, List.126}; + ret List.661; procedure List.66 (#Attr.2, #Attr.3): - let List.681 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.681; + let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.674; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.671; + let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.664; 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/record_update.txt b/crates/compiler/test_mono/generated/record_update.txt index bf2c58ce44..26ae908df8 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.128, List.129, List.130): - let List.675 : {List U64, U64} = CallByName List.64 List.128 List.129 List.130; - let List.674 : List U64 = StructAtIndex 0 List.675; - ret List.674; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; -procedure List.64 (List.125, List.126, List.127): - let List.672 : U64 = CallByName List.6 List.125; - let List.669 : Int1 = CallByName Num.22 List.126 List.672; - if List.669 then - let List.670 : {List U64, U64} = CallByName List.67 List.125 List.126 List.127; - ret List.670; +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; else - let List.668 : {List U64, U64} = Struct {List.125, List.127}; - ret List.668; + let List.661 : {List U64, U64} = Struct {List.124, List.126}; + ret List.661; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.671 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.671; + let List.664 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.664; procedure Num.22 (#Attr.2, #Attr.3): let Num.281 : 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 874526e675..989402fda0 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.101 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5): - joinpoint List.672 List.175 List.176 List.177 List.178 List.179: - let List.674 : Int1 = CallByName Num.22 List.178 List.179; - if List.674 then - let List.678 : [C List *self] = CallByName List.66 List.175 List.178; - inc List.678; - let List.180 : List [C List *self] = CallByName List.284 List.176 List.678 List.177; - let List.677 : U64 = 1i64; - let List.676 : U64 = CallByName Num.51 List.178 List.677; - jump List.672 List.175 List.180 List.177 List.676 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.1; - jump List.672 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5; + inc #Derived_gen.4; + jump List.665 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8; -procedure List.18 (List.172, List.173, List.174): - let List.670 : U64 = 0i64; - let List.671 : U64 = CallByName List.6 List.172; - let List.669 : List [C List *self] = CallByName List.101 List.172 List.173 List.174 List.670 List.671; - ret List.669; +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; -procedure List.284 (List.285, List.286, List.282): - let List.683 : [C List *self] = CallByName Test.2 List.286; - let List.682 : List [C List *self] = CallByName List.71 List.285 List.683; - ret List.682; +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; -procedure List.5 (List.281, List.282): - let List.283 : U64 = CallByName List.6 List.281; - let List.667 : List [C List *self] = CallByName List.68 List.283; - let List.666 : List [C List *self] = CallByName List.18 List.281 List.667 List.282; - ret List.666; +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; procedure List.6 (#Attr.2): - let List.680 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.680; + let List.673 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.673; procedure List.66 (#Attr.2, #Attr.3): - let List.679 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.679; + let List.672 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.672; procedure List.68 (#Attr.2): - let List.685 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.685; + let List.678 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.678; procedure List.71 (#Attr.2, #Attr.3): - let List.684 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.684; + let List.677 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.677; procedure Num.22 (#Attr.2, #Attr.3): let Num.282 : 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 23a5dd947c..ed27fe5880 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.120, List.121): - let List.688 : U64 = CallByName List.6 List.120; - let List.685 : Int1 = CallByName Num.22 List.121 List.688; - if List.685 then - let List.687 : I64 = CallByName List.66 List.120 List.121; - let List.686 : [C {}, C I64] = TagId(1) List.687; - ret List.686; +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; else - let List.684 : {} = Struct {}; - let List.683 : [C {}, C I64] = TagId(0) List.684; - ret List.683; + let List.677 : {} = Struct {}; + let List.676 : [C {}, C I64] = TagId(0) List.677; + ret List.676; -procedure List.3 (List.128, List.129, List.130): - let List.675 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130; - let List.674 : List I64 = StructAtIndex 0 List.675; - ret List.674; +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; procedure List.6 (#Attr.2): - let List.673 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.673; + let List.666 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.666; -procedure List.64 (List.125, List.126, List.127): - let List.672 : U64 = CallByName List.6 List.125; - let List.669 : Int1 = CallByName Num.22 List.126 List.672; - if List.669 then - let List.670 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127; - ret List.670; +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; else - let List.668 : {List I64, I64} = Struct {List.125, List.127}; - ret List.668; + let List.661 : {List I64, I64} = Struct {List.124, List.126}; + ret List.661; procedure List.66 (#Attr.2, #Attr.3): - let List.681 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.681; + let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.674; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.671 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.671; + let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.664; 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/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 4352b4e0ea..e5fc4dc70b 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 @@ -29,58 +29,58 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : Str = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.66 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.12; - jump List.669 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16; + inc #Derived_gen.0; + jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4; procedure List.13 (#Attr.2, #Attr.3): - let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.692; + let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.685; -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; +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; -procedure List.4 (List.136, List.137): - let List.688 : U64 = 1i64; - let List.687 : List U8 = CallByName List.70 List.136 List.688; - let List.686 : List U8 = CallByName List.71 List.687 List.137; - ret List.686; +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; procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.691; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.70 (#Attr.2, #Attr.3): - let List.682 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.682; + let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.675; procedure List.71 (#Attr.2, #Attr.3): - let List.680 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.680; + let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.673; procedure List.8 (#Attr.2, #Attr.3): - let List.690 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.690; + let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.683; procedure Num.127 (#Attr.2): let Num.282 : 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 0163612902..c181272837 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 @@ -87,93 +87,93 @@ procedure Encode.26 (Encode.107, Encode.108): let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108; ret Encode.110; -procedure List.101 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39): - joinpoint List.669 List.175 List.176 List.177 List.178 List.179: - let List.671 : Int1 = CallByName Num.22 List.178 List.179; - if List.671 then - let List.675 : [C {}, C {}, C Str] = CallByName List.66 List.175 List.178; - inc List.675; - let List.180 : List U8 = CallByName Test.66 List.176 List.675 List.177; - let List.674 : U64 = 1i64; - let List.673 : U64 = CallByName Num.51 List.178 List.674; - jump List.669 List.175 List.180 List.177 List.673 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in - inc #Derived_gen.35; - jump List.669 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; + inc #Derived_gen.44; + jump List.689 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; -procedure List.101 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): - joinpoint List.696 List.175 List.176 List.177 List.178 List.179: - let List.698 : Int1 = CallByName Num.22 List.178 List.179; - if List.698 then - let List.702 : Str = CallByName List.66 List.175 List.178; - inc List.702; - let List.180 : List U8 = CallByName Test.66 List.176 List.702 List.177; - let List.701 : U64 = 1i64; - let List.700 : U64 = CallByName Num.51 List.178 List.701; - jump List.696 List.175 List.180 List.177 List.700 List.179; +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; else - dec List.175; - ret List.176; + dec List.174; + ret List.175; in inc #Derived_gen.49; - jump List.696 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; + jump List.662 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; procedure List.13 (#Attr.2, #Attr.3): - let List.692 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.692; + let List.685 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.685; procedure List.13 (#Attr.2, #Attr.3): - let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.720; - -procedure List.18 (List.172, List.173, List.174): - let List.667 : U64 = 0i64; - let List.668 : U64 = CallByName List.6 List.172; - let List.666 : List U8 = CallByName List.101 List.172 List.173 List.174 List.667 List.668; - ret List.666; - -procedure List.18 (List.172, List.173, List.174): - let List.694 : U64 = 0i64; - let List.695 : U64 = CallByName List.6 List.172; - let List.693 : List U8 = CallByName List.101 List.172 List.173 List.174 List.694 List.695; - ret List.693; - -procedure List.4 (List.136, List.137): - let List.715 : U64 = 1i64; - let List.714 : List U8 = CallByName List.70 List.136 List.715; - let List.713 : List U8 = CallByName List.71 List.714 List.137; + let List.713 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; ret List.713; -procedure List.6 (#Attr.2): - let List.691 : U64 = lowlevel ListLenU64 #Attr.2; - 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; + +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; + +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; procedure List.6 (#Attr.2): - let List.718 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.718; + let List.684 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.684; + +procedure List.6 (#Attr.2): + let List.711 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.711; procedure List.66 (#Attr.2, #Attr.3): - let List.676 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.676; + let List.669 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.669; procedure List.66 (#Attr.2, #Attr.3): - let List.703 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.703; + let List.696 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.696; procedure List.70 (#Attr.2, #Attr.3): - let List.709 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.709; + let List.702 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.702; procedure List.71 (#Attr.2, #Attr.3): - let List.707 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.700 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.700; procedure List.8 (#Attr.2, #Attr.3): - let List.717 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.717; + let List.710 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.710; procedure Num.127 (#Attr.2): let Num.286 : 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 871dd957cc..7b072af74e 100644 --- a/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt +++ b/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt @@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3): let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.23; -procedure List.116 (List.569, List.570, List.571): - let List.684 : U64 = 0i64; - let List.685 : U64 = CallByName List.6 List.569; - let List.683 : [C U64, C U64] = CallByName List.80 List.569 List.570 List.571 List.684 List.685; - ret List.683; +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; -procedure List.26 (List.213, List.214, List.215): - let List.677 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215; - let List.680 : U8 = 1i64; - let List.681 : U8 = GetTagId List.677; - let List.682 : Int1 = lowlevel Eq List.680 List.681; - if List.682 then - let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.677; - ret List.216; +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; + ret List.215; else - let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.677; - ret List.217; + let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670; + ret List.216; -procedure List.38 (List.401, List.402): - let List.676 : U64 = CallByName List.6 List.401; - let List.403 : U64 = CallByName Num.77 List.676 List.402; - let List.666 : List U8 = CallByName List.43 List.401 List.403; - ret List.666; +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; -procedure List.43 (List.399, List.400): - let List.674 : U64 = CallByName List.6 List.399; - let List.673 : U64 = CallByName Num.77 List.674 List.400; - let List.668 : {U64, U64} = Struct {List.400, List.673}; - let List.667 : List U8 = CallByName List.49 List.399 List.668; - ret List.667; +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; -procedure List.49 (List.477, List.478): - let List.670 : U64 = StructAtIndex 1 List.478; - let List.671 : U64 = StructAtIndex 0 List.478; - let List.669 : List U8 = CallByName List.72 List.477 List.670 List.671; - ret List.669; +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; procedure List.6 (#Attr.2): - let List.675 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.675; + let List.668 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.668; procedure List.66 (#Attr.2, #Attr.3): - let List.698 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.698; + let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.691; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.672 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.672; + let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.665; procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4): - joinpoint List.686 List.572 List.573 List.574 List.575 List.576: - let List.688 : Int1 = CallByName Num.22 List.575 List.576; - if List.688 then - let List.697 : U8 = CallByName List.66 List.572 List.575; - let List.689 : [C U64, C U64] = CallByName Test.3 List.573 List.697; - let List.694 : U8 = 1i64; - let List.695 : U8 = GetTagId List.689; - let List.696 : Int1 = lowlevel Eq List.694 List.695; - if List.696 then - let List.577 : U64 = UnionAtIndex (Id 1) (Index 0) List.689; - let List.692 : U64 = 1i64; - let List.691 : U64 = CallByName Num.51 List.575 List.692; - jump List.686 List.572 List.577 List.574 List.691 List.576; + 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; else - dec List.572; - let List.578 : U64 = UnionAtIndex (Id 0) (Index 0) List.689; - let List.693 : [C U64, C U64] = TagId(0) List.578; - ret List.693; + 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; else - dec List.572; - let List.687 : [C U64, C U64] = TagId(1) List.573; - ret List.687; + dec List.565; + let List.680 : [C U64, C U64] = TagId(1) List.566; + ret List.680; in inc #Derived_gen.0; - jump List.686 #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 Num.22 (#Attr.2, #Attr.3): let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3; diff --git a/crates/valgrind_tests/src/lib.rs b/crates/valgrind_tests/src/lib.rs index 4df9cca9d5..4683c7b5aa 100644 --- a/crates/valgrind_tests/src/lib.rs +++ b/crates/valgrind_tests/src/lib.rs @@ -230,7 +230,7 @@ fn str_capacity_concat() { fn split_not_present() { valgrind_test(indoc!( r#" - Str.split (Str.concat "a string that is stored on the heap" "!") "\n" + Str.splitOn (Str.concat "a string that is stored on the heap" "!") "\n" |> Str.joinWith "" "# )); diff --git a/www/InteractiveExample.roc b/www/InteractiveExample.roc index 64a5974c87..838cf83cb5 100644 --- a/www/InteractiveExample.roc +++ b/www/InteractiveExample.roc @@ -117,7 +117,7 @@ tokensToStr = \tokens -> identToHtml : Str -> Str identToHtml = \str -> - List.walk (Str.split str ".") "" \accum, ident -> + List.walk (Str.splitOn str ".") "" \accum, ident -> len = Str.countUtf8Bytes ident withoutSuffix = ident |> Str.replaceLast "!" "" diff --git a/www/main.roc b/www/main.roc index afa1e4de8c..6c29e6c43c 100644 --- a/www/main.roc +++ b/www/main.roc @@ -62,7 +62,7 @@ getPageInfo = \pagePathStr -> Ok pageInfo -> pageInfo Err KeyNotFound -> if Str.contains pagePathStr "/examples/" then - Str.split pagePathStr "/" + Str.splitOn pagePathStr "/" |> List.takeLast 2 |> List.first # we use the folder for name for the page title, e.g. Json from examples/Json/README.html |> unwrapOrCrash "This List.first should never fail. pagePathStr ($(pagePathStr)) did not contain any `/`." From 47d810e0593fe6abb9a85b0cebccb2e9649b457a Mon Sep 17 00:00:00 2001 From: Anton-4 <17049058+Anton-4@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:30:47 +0100 Subject: [PATCH 14/14] fix example Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com> --- crates/compiler/builtins/roc/List.roc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index f8fb3bdc03..6a6c96925d 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -1263,7 +1263,7 @@ splitAt = \elements, userSplitIndex -> ## Splits the input list on the delimiter element. ## ## ```roc -## List.splitOn [1, 2, 3] 2 == [[1], [2]] +## List.splitOn [1, 2, 3] 2 == [[1], [3]] ## ``` splitOn : List a, a -> List (List a) where a implements Eq splitOn = \elements, delimiter ->