diff --git a/crates/cli/tests/cli_tests.rs b/crates/cli/tests/cli_tests.rs index 69c47c8e84..12e1486a36 100644 --- a/crates/cli/tests/cli_tests.rs +++ b/crates/cli/tests/cli_tests.rs @@ -1111,6 +1111,20 @@ mod cli_tests { let cli_dev_out = cli_dev.run(); cli_dev_out.assert_clean_success(); } + + #[test] + #[cfg_attr(windows, ignore)] + fn effectful_join_map() { + build_platform_host(); + + let cli_dev = ExecCli::new( + roc_cli::CMD_DEV, + file_from_root("crates/cli/tests/test-projects/effectful", "join_map.roc"), + ); + + let cli_dev_out = cli_dev.run(); + cli_dev_out.assert_clean_success(); + } } // 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/join_map.roc b/crates/cli/tests/test-projects/effectful/join_map.roc new file mode 100644 index 0000000000..ab78e2cc44 --- /dev/null +++ b/crates/cli/tests/test-projects/effectful/join_map.roc @@ -0,0 +1,21 @@ +app [main!] { pf: platform "../test-platform-effects-zig/main.roc" } + +import pf.Effect + +main! : {} => {} +main! = \{} -> + flattened = List.join_map!([1, 2, 3], duplicate!) + expect flattened == Ok([1, 1, 2, 2, 3, 3]) + + with_zero = List.join_map!([0, 2], duplicate!) + expect with_zero == Ok([0, 0, 2, 2]) + + empty = List.join_map!([], duplicate!) + expect empty == Ok([]) + + {} + +duplicate! : U64 => Result (List U64) _ +duplicate! = \num -> + value = Effect.id_effectful!(num) + Ok([value, value]) diff --git a/crates/compiler/builtins/roc/List.roc b/crates/compiler/builtins/roc/List.roc index 2a84a9a8af..f5bd847560 100644 --- a/crates/compiler/builtins/roc/List.roc +++ b/crates/compiler/builtins/roc/List.roc @@ -38,6 +38,7 @@ module [ map3, map4, join_map, + join_map!, product, walk_with_index, walk_until, @@ -1156,6 +1157,26 @@ join_map : List a, (a -> List b) -> List b join_map = |list, mapper| List.walk(list, [], |state, elem| List.concat(state, mapper(elem))) +## Like [List.join_map], except the transformation function can have effects. +## +## ``` +## log_and_split! : List Str => Result (List Str) _ +## log_and_split! = |paths| +## List.join_map!( +## paths, +## |path| +## Result.map_ok(Stdout.line!(path), |_| Str.split_on(path, "/")), +## ) +## ``` +join_map! : List a, (a => Result (List b) err) => Result (List b) err +join_map! = |list, mapper!| + List.walk_try!( + list, + [], + |state, elem| + Result.map_ok(mapper!(elem), |mapper_list| List.concat(state, mapper_list)), + ) + ## Returns the first element of the list satisfying a predicate function. ## If no satisfying element is found, an `Err NotFound` is returned. find_first : List elem, (elem -> Bool) -> Result elem [NotFound] diff --git a/crates/compiler/fmt/src/migrate.rs b/crates/compiler/fmt/src/migrate.rs index b0f9ee161c..2ddf4918a5 100644 --- a/crates/compiler/fmt/src/migrate.rs +++ b/crates/compiler/fmt/src/migrate.rs @@ -864,6 +864,7 @@ fn is_static_method(module_name: &str, ident: &str) -> bool { | "map_try" | "walk_try" | "join_map" + | "join_map!" | "any" | "take_first" | "take_last" diff --git a/crates/compiler/module/src/symbol.rs b/crates/compiler/module/src/symbol.rs index 4c33c9e65e..54ac2f8060 100644 --- a/crates/compiler/module/src/symbol.rs +++ b/crates/compiler/module/src/symbol.rs @@ -1533,6 +1533,7 @@ define_builtins! { 95 LIST_WALK_TRY_FX: "walk_try!" 96 LIST_MAP_TRY_FX: "map_try!" 97 LIST_KEEP_IF_TRY_FX: "keep_if_try!" + 98 LIST_JOIN_MAP_FX: "join_map!" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias 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 72644a2988..c53d7877c9 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.9 (#Attr.2, #Attr.3): let Bool.21 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.21; -procedure List.119 (List.582, List.583, List.584): - let List.712 : U64 = 0i64; - let List.713 : U64 = CallByName List.6 List.582; - let List.711 : [C U64, C U64] = CallByName List.80 List.582 List.583 List.584 List.712 List.713; - ret List.711; +procedure List.120 (List.590, List.591, List.592): + let List.720 : U64 = 0i64; + let List.721 : U64 = CallByName List.6 List.590; + let List.719 : [C U64, C U64] = CallByName List.80 List.590 List.591 List.592 List.720 List.721; + ret List.719; -procedure List.26 (List.216, List.217, List.218): - let List.705 : [C U64, C U64] = CallByName List.119 List.216 List.217 List.218; - let List.708 : U8 = 1i64; - let List.709 : U8 = GetTagId List.705; - let List.710 : Int1 = lowlevel Eq List.708 List.709; - if List.710 then - let List.219 : U64 = UnionAtIndex (Id 1) (Index 0) List.705; - ret List.219; - else - let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705; +procedure List.26 (List.217, List.218, List.219): + let List.713 : [C U64, C U64] = CallByName List.120 List.217 List.218 List.219; + let List.716 : U8 = 1i64; + let List.717 : U8 = GetTagId List.713; + let List.718 : Int1 = lowlevel Eq List.716 List.717; + if List.718 then + let List.220 : U64 = UnionAtIndex (Id 1) (Index 0) List.713; ret List.220; + else + let List.221 : U64 = UnionAtIndex (Id 0) (Index 0) List.713; + ret List.221; -procedure List.38 (List.413, List.414): - let List.704 : U64 = CallByName List.6 List.413; - let List.415 : U64 = CallByName Num.77 List.704 List.414; - let List.694 : List U8 = CallByName List.43 List.413 List.415; - ret List.694; +procedure List.38 (List.414, List.415): + let List.712 : U64 = CallByName List.6 List.414; + let List.416 : U64 = CallByName Num.77 List.712 List.415; + let List.702 : List U8 = CallByName List.43 List.414 List.416; + ret List.702; -procedure List.43 (List.411, List.412): - let List.702 : U64 = CallByName List.6 List.411; - let List.701 : U64 = CallByName Num.77 List.702 List.412; - let List.696 : {U64, U64} = Struct {List.412, List.701}; - let List.695 : List U8 = CallByName List.49 List.411 List.696; - ret List.695; - -procedure List.49 (List.489, List.490): - let List.698 : U64 = StructAtIndex 1 List.490; - let List.699 : U64 = StructAtIndex 0 List.490; - let List.697 : List U8 = CallByName List.72 List.489 List.698 List.699; - ret List.697; - -procedure List.6 (#Attr.2): - let List.703 : U64 = lowlevel ListLenU64 #Attr.2; +procedure List.43 (List.412, List.413): + let List.710 : U64 = CallByName List.6 List.412; + let List.709 : U64 = CallByName Num.77 List.710 List.413; + let List.704 : {U64, U64} = Struct {List.413, List.709}; + let List.703 : List U8 = CallByName List.49 List.412 List.704; ret List.703; +procedure List.49 (List.497, List.498): + let List.706 : U64 = StructAtIndex 1 List.498; + let List.707 : U64 = StructAtIndex 0 List.498; + let List.705 : List U8 = CallByName List.72 List.497 List.706 List.707; + ret List.705; + +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.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.726; + let List.734 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.734; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.700; + let List.708 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.708; procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26): - joinpoint List.714 List.585 List.586 List.587 List.588 List.589: - let List.716 : Int1 = CallByName Num.22 List.588 List.589; - if List.716 then - let List.725 : U8 = CallByName List.66 List.585 List.588; - let List.717 : [C U64, C U64] = CallByName Test.4 List.586 List.725; - let List.722 : U8 = 1i64; - let List.723 : U8 = GetTagId List.717; - let List.724 : Int1 = lowlevel Eq List.722 List.723; - if List.724 then - let List.590 : U64 = UnionAtIndex (Id 1) (Index 0) List.717; - let List.720 : U64 = 1i64; - let List.719 : U64 = CallByName Num.51 List.588 List.720; - jump List.714 List.585 List.590 List.587 List.719 List.589; + joinpoint List.722 List.593 List.594 List.595 List.596 List.597: + let List.724 : Int1 = CallByName Num.22 List.596 List.597; + if List.724 then + let List.733 : U8 = CallByName List.66 List.593 List.596; + let List.725 : [C U64, C U64] = CallByName Test.4 List.594 List.733; + let List.730 : U8 = 1i64; + let List.731 : U8 = GetTagId List.725; + let List.732 : Int1 = lowlevel Eq List.730 List.731; + if List.732 then + let List.598 : U64 = UnionAtIndex (Id 1) (Index 0) List.725; + let List.728 : U64 = 1i64; + let List.727 : U64 = CallByName Num.51 List.596 List.728; + jump List.722 List.593 List.598 List.595 List.727 List.597; else - dec List.585; - let List.591 : U64 = UnionAtIndex (Id 0) (Index 0) List.717; - let List.721 : [C U64, C U64] = TagId(0) List.591; - ret List.721; + dec List.593; + let List.599 : U64 = UnionAtIndex (Id 0) (Index 0) List.725; + let List.729 : [C U64, C U64] = TagId(0) List.599; + ret List.729; else - dec List.585; - let List.715 : [C U64, C U64] = TagId(1) List.586; - ret List.715; + dec List.593; + let List.723 : [C U64, C U64] = TagId(1) List.594; + ret List.723; in inc Bool.22; - jump List.714 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; + jump List.722 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; procedure Num.22 (#Attr.2, #Attr.3): let Num.292 : 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 36f04d4da8..f96f4db0c0 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.700 List.178 List.179 List.180 List.181 List.182: - let List.702 : Int1 = CallByName Num.22 List.181 List.182; - if List.702 then - let List.706 : [] = CallByName List.66 List.178 List.181; - let List.183 : List {} = CallByName List.296 List.179 List.706 List.180; - let List.705 : U64 = 1i64; - let List.704 : U64 = CallByName Num.51 List.181 List.705; - jump List.700 List.178 List.183 List.180 List.704 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.708 List.179 List.180 List.181 List.182 List.183: + let List.710 : Int1 = CallByName Num.22 List.182 List.183; + if List.710 then + let List.714 : [] = CallByName List.66 List.179 List.182; + let List.184 : List {} = CallByName List.297 List.180 List.714 List.181; + let List.713 : U64 = 1i64; + let List.712 : U64 = CallByName Num.51 List.182 List.713; + jump List.708 List.179 List.184 List.181 List.712 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.698 : U64 = 0i64; - let List.699 : U64 = CallByName List.6 List.175; - let List.697 : List {} = CallByName List.103 List.175 List.176 List.177 List.698 List.699; - ret List.697; +procedure List.18 (List.176, List.177, List.178): + let List.706 : U64 = 0i64; + let List.707 : U64 = CallByName List.6 List.176; + let List.705 : List {} = CallByName List.104 List.176 List.177 List.178 List.706 List.707; + ret List.705; -procedure List.296 (List.297, List.298, List.294): - let List.711 : {} = CallByName Test.2 List.298; - let List.710 : List {} = CallByName List.71 List.297 List.711; - ret List.710; +procedure List.297 (List.298, List.299, List.295): + let List.719 : {} = CallByName Test.2 List.299; + let List.718 : List {} = CallByName List.71 List.298 List.719; + ret List.718; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.695 : List {} = CallByName List.68 List.295; - let List.694 : List {} = CallByName List.18 List.293 List.695 List.294; - ret List.694; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.703 : List {} = CallByName List.68 List.296; + let List.702 : List {} = CallByName List.18 List.294 List.703 List.295; + ret List.702; procedure List.6 (#Attr.2): - let List.708 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.708; + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.716; procedure List.66 (#Attr.2, #Attr.3): - let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.715 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.715; procedure List.68 (#Attr.2): - let List.713 : List {} = lowlevel ListWithCapacity #Attr.2; - ret List.713; + let List.721 : List {} = lowlevel ListWithCapacity #Attr.2; + ret List.721; procedure List.71 (#Attr.2, #Attr.3): - let List.712 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.712; + let List.720 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.720; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 f2451651f0..7064d8d72d 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.700 List.178 List.179 List.180 List.181 List.182: - let List.702 : Int1 = CallByName Num.22 List.181 List.182; - if List.702 then - let List.706 : [] = CallByName List.66 List.178 List.181; - let List.183 : List [] = CallByName List.296 List.179 List.706 List.180; - let List.705 : U64 = 1i64; - let List.704 : U64 = CallByName Num.51 List.181 List.705; - jump List.700 List.178 List.183 List.180 List.704 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.708 List.179 List.180 List.181 List.182 List.183: + let List.710 : Int1 = CallByName Num.22 List.182 List.183; + if List.710 then + let List.714 : [] = CallByName List.66 List.179 List.182; + let List.184 : List [] = CallByName List.297 List.180 List.714 List.181; + let List.713 : U64 = 1i64; + let List.712 : U64 = CallByName Num.51 List.182 List.713; + jump List.708 List.179 List.184 List.181 List.712 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.698 : U64 = 0i64; - let List.699 : U64 = CallByName List.6 List.175; - let List.697 : List [] = CallByName List.103 List.175 List.176 List.177 List.698 List.699; - ret List.697; +procedure List.18 (List.176, List.177, List.178): + let List.706 : U64 = 0i64; + let List.707 : U64 = CallByName List.6 List.176; + let List.705 : List [] = CallByName List.104 List.176 List.177 List.178 List.706 List.707; + ret List.705; -procedure List.296 (List.297, List.298, List.294): - let List.711 : [] = CallByName Test.2 List.298; - let List.710 : List [] = CallByName List.71 List.297 List.711; - ret List.710; +procedure List.297 (List.298, List.299, List.295): + let List.719 : [] = CallByName Test.2 List.299; + let List.718 : List [] = CallByName List.71 List.298 List.719; + ret List.718; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.695 : List [] = CallByName List.68 List.295; - let List.694 : List [] = CallByName List.18 List.293 List.695 List.294; - ret List.694; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.703 : List [] = CallByName List.68 List.296; + let List.702 : List [] = CallByName List.18 List.294 List.703 List.295; + ret List.702; procedure List.6 (#Attr.2): - let List.708 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.708; + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.716; procedure List.66 (#Attr.2, #Attr.3): - let List.707 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.715 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.715; procedure List.68 (#Attr.2): - let List.713 : List [] = lowlevel ListWithCapacity #Attr.2; - ret List.713; + let List.721 : List [] = lowlevel ListWithCapacity #Attr.2; + ret List.721; procedure List.71 (#Attr.2, #Attr.3): - let List.712 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.712; + let List.720 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.720; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 09be16d894..d819b5a6d2 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.103 (Bool.34, Bool.35, Bool.36, Bool.37, Bool.38): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : [] = CallByName List.66 List.178 List.181; - let List.183 : [C {}, C *self {{}, []}] = CallByName Test.29 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (Bool.34, Bool.35, Bool.36, Bool.37, Bool.38): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : [] = CallByName List.66 List.179 List.182; + let List.184 : [C {}, C *self {{}, []}] = CallByName Test.29 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.34; - jump List.697 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38; + jump List.705 Bool.34 Bool.35 Bool.36 Bool.37 Bool.38; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : [C {}, C *self {{}, []}] = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : [C {}, C *self {{}, []}] = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 2dd9fb6483..2d88334764 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.694 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.694; + let List.702 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.702; 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 3673ec141c..686ded87a0 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.21 : Int1 = true; ret Bool.21; -procedure List.103 (Bool.29, Bool.30, Bool.31, Bool.32, Bool.33): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Int1 = CallByName List.66 List.178 List.181; - let List.183 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (Bool.29, Bool.30, Bool.31, Bool.32, Bool.33): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Int1 = CallByName List.66 List.179 List.182; + let List.184 : [, C *self Int1, C *self Int1] = CallByName Test.6 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.29; - jump List.697 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33; + jump List.705 Bool.29 Bool.30 Bool.31 Bool.32 Bool.33; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : [, C *self Int1, C *self Int1] = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : [, C *self Int1, C *self Int1] = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 d9b1bea081..31daa071bd 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.744; procedure List.6 (#Attr.2): - let List.694 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.694; + let List.702 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.702; procedure Num.75 (#Attr.2, #Attr.3): let Num.289 : 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 2757c9516c..9e35b78e4a 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.21 : Int1 = false; ret Bool.21; -procedure List.2 (List.123, List.124): - let List.700 : U64 = CallByName List.6 List.123; - let List.696 : Int1 = CallByName Num.22 List.124 List.700; - if List.696 then - let List.698 : {} = CallByName List.66 List.123 List.124; - let List.697 : [C {}, C {}] = TagId(1) List.698; - ret List.697; +procedure List.2 (List.124, List.125): + let List.708 : U64 = CallByName List.6 List.124; + let List.704 : Int1 = CallByName Num.22 List.125 List.708; + if List.704 then + let List.706 : {} = CallByName List.66 List.124 List.125; + let List.705 : [C {}, C {}] = TagId(1) List.706; + ret List.705; else - let List.695 : {} = Struct {}; - let List.694 : [C {}, C {}] = TagId(0) List.695; - ret List.694; + let List.703 : {} = Struct {}; + let List.702 : [C {}, C {}] = TagId(0) List.703; + ret List.702; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; procedure List.66 (#Attr.2, #Attr.3): - let List.699 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.699; + let List.707 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.289 : 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 284b55136f..0e284055f8 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.139, List.140): - let List.697 : U64 = 1i64; - let List.695 : List U8 = CallByName List.70 List.139 List.697; - let List.694 : List U8 = CallByName List.71 List.695 List.140; - ret List.694; +procedure List.4 (List.140, List.141): + let List.705 : U64 = 1i64; + let List.703 : List U8 = CallByName List.70 List.140 List.705; + let List.702 : List U8 = CallByName List.71 List.703 List.141; + ret List.702; procedure List.70 (#Attr.2, #Attr.3): - let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.698; + let List.706 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.706; procedure List.71 (#Attr.2, #Attr.3): - let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.696; + let List.704 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.704; 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 bf935eee9c..b8964a3495 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.103 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.71 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39): + joinpoint List.731 List.179 List.180 List.181 List.182 List.183: + let List.733 : Int1 = CallByName Num.22 List.182 List.183; + if List.733 then + let List.737 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.737; + let List.184 : List U8 = CallByName Test.71 List.180 List.737; + let List.736 : U64 = 1i64; + let List.735 : U64 = CallByName Num.51 List.182 List.736; + jump List.731 List.179 List.184 List.181 List.735 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.35; - jump List.697 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; + jump List.731 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39; -procedure List.103 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): - joinpoint List.723 List.178 List.179 List.180 List.181 List.182: - let List.725 : Int1 = CallByName Num.22 List.181 List.182; - if List.725 then - let List.729 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.729; - let List.183 : List U8 = CallByName Test.71 List.179 List.729; - let List.728 : U64 = 1i64; - let List.727 : U64 = CallByName Num.51 List.181 List.728; - jump List.723 List.178 List.183 List.180 List.727 List.182; +procedure List.104 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.71 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.40; - jump List.723 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; + jump List.705 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.18 (List.175, List.176, List.177): - let List.721 : U64 = 0i64; - let List.722 : U64 = CallByName List.6 List.175; - let List.720 : List U8 = CallByName List.103 List.175 List.176 List.177 List.721 List.722; - ret List.720; +procedure List.18 (List.176, List.177, List.178): + let List.729 : U64 = 0i64; + let List.730 : U64 = CallByName List.6 List.176; + let List.728 : List U8 = CallByName List.104 List.176 List.177 List.178 List.729 List.730; + ret List.728; -procedure List.4 (List.139, List.140): - let List.742 : U64 = 1i64; - let List.741 : List U8 = CallByName List.70 List.139 List.742; - let List.740 : List U8 = CallByName List.71 List.741 List.140; - ret List.740; +procedure List.4 (List.140, List.141): + let List.750 : U64 = 1i64; + let List.749 : List U8 = CallByName List.70 List.140 List.750; + let List.748 : List U8 = CallByName List.71 List.749 List.141; + ret List.748; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.6 (#Attr.2): - let List.745 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.745; + let List.753 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.753; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.66 (#Attr.2, #Attr.3): - let List.730 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.730; + let List.738 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.738; procedure List.70 (#Attr.2, #Attr.3): - let List.736 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.736; + let List.744 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.744; procedure List.71 (#Attr.2, #Attr.3): - let List.734 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.734; + let List.742 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.742; procedure List.8 (#Attr.2, #Attr.3): - let List.744 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.744; + let List.752 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.752; procedure Num.127 (#Attr.2): let Num.294 : 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 73888e6277..df94a605c7 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.103 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.71 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.71 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.19; - jump List.697 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; + jump List.705 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.4 (List.139, List.140): - let List.716 : U64 = 1i64; - let List.715 : List U8 = CallByName List.70 List.139 List.716; - let List.714 : List U8 = CallByName List.71 List.715 List.140; - ret List.714; +procedure List.4 (List.140, List.141): + let List.724 : U64 = 1i64; + let List.723 : List U8 = CallByName List.70 List.140 List.724; + let List.722 : List U8 = CallByName List.71 List.723 List.141; + ret List.722; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.70 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.710; + let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.718; procedure List.71 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.708; + let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; procedure List.8 (#Attr.2, #Attr.3): - let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.718; + let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.726; procedure Num.127 (#Attr.2): let Num.290 : 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 7dbefe6d0b..f88f9400c8 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.103 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.71 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.71 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.23; - jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + jump List.705 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.4 (List.139, List.140): - let List.716 : U64 = 1i64; - let List.715 : List U8 = CallByName List.70 List.139 List.716; - let List.714 : List U8 = CallByName List.71 List.715 List.140; - ret List.714; +procedure List.4 (List.140, List.141): + let List.724 : U64 = 1i64; + let List.723 : List U8 = CallByName List.70 List.140 List.724; + let List.722 : List U8 = CallByName List.71 List.723 List.141; + ret List.722; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.70 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.710; + let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.718; procedure List.71 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.708; + let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; procedure List.8 (#Attr.2, #Attr.3): - let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.718; + let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.726; procedure Num.127 (#Attr.2): let Num.290 : 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 d4162198e9..9570ef9d9d 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.139, List.140): - let List.704 : U64 = 1i64; - let List.703 : List U8 = CallByName List.70 List.139 List.704; - let List.702 : List U8 = CallByName List.71 List.703 List.140; - ret List.702; +procedure List.4 (List.140, List.141): + let List.712 : U64 = 1i64; + let List.711 : List U8 = CallByName List.70 List.140 List.712; + let List.710 : List U8 = CallByName List.71 List.711 List.141; + ret List.710; procedure List.70 (#Attr.2, #Attr.3): - let List.698 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.698; + let List.706 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.706; procedure List.71 (#Attr.2, #Attr.3): - let List.696 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.696; + let List.704 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.704; procedure List.8 (#Attr.2, #Attr.3): - let List.706 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.706; + let List.714 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.714; procedure Num.127 (#Attr.2): let Num.290 : 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 75987fbbf4..32cf323715 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.103 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Str = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.64 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Str = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.64 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.22; - jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; + jump List.705 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; procedure List.13 (#Attr.2, #Attr.3): - let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.720; + let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.728; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.4 (List.139, List.140): - let List.716 : U64 = 1i64; - let List.715 : List U8 = CallByName List.70 List.139 List.716; - let List.714 : List U8 = CallByName List.71 List.715 List.140; - ret List.714; +procedure List.4 (List.140, List.141): + let List.724 : U64 = 1i64; + let List.723 : List U8 = CallByName List.70 List.140 List.724; + let List.722 : List U8 = CallByName List.71 List.723 List.141; + ret List.722; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.70 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.710; + let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.718; procedure List.71 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.708; + let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; procedure List.8 (#Attr.2, #Attr.3): - let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.718; + let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.726; procedure Num.127 (#Attr.2): let Num.290 : 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 f6b4e474fa..4916026b25 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.103 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Str = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.64 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Str = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.64 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.23; - jump List.697 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; + jump List.705 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27; procedure List.13 (#Attr.2, #Attr.3): - let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.720; + let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.728; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.4 (List.139, List.140): - let List.716 : U64 = 1i64; - let List.715 : List U8 = CallByName List.70 List.139 List.716; - let List.714 : List U8 = CallByName List.71 List.715 List.140; - ret List.714; +procedure List.4 (List.140, List.141): + let List.724 : U64 = 1i64; + let List.723 : List U8 = CallByName List.70 List.140 List.724; + let List.722 : List U8 = CallByName List.71 List.723 List.141; + ret List.722; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.70 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.710; + let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.718; procedure List.71 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.708; + let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; procedure List.8 (#Attr.2, #Attr.3): - let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.718; + let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.726; procedure Num.127 (#Attr.2): let Num.290 : 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 d0ea73fe19..213f7f88ba 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_dict.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_dict.txt @@ -898,171 +898,171 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.101 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36): - joinpoint List.745 List.155 List.156 List.157: - let List.753 : U64 = 0i64; - let List.747 : Int1 = CallByName Num.24 List.156 List.753; - if List.747 then - let List.752 : U64 = 1i64; - let List.749 : U64 = CallByName Num.75 List.156 List.752; - let List.750 : List {U32, U32} = CallByName List.71 List.157 List.155; - jump List.745 List.155 List.749 List.750; +procedure List.102 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36): + joinpoint List.753 List.156 List.157 List.158: + let List.761 : U64 = 0i64; + let List.755 : Int1 = CallByName Num.24 List.157 List.761; + if List.755 then + let List.760 : U64 = 1i64; + let List.757 : U64 = CallByName Num.75 List.157 List.760; + let List.758 : List {U32, U32} = CallByName List.71 List.158 List.156; + jump List.753 List.156 List.757 List.758; else - ret List.157; + ret List.158; in - jump List.745 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36; + jump List.753 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36; -procedure List.103 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, I64} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, I64} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.37; - jump List.697 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; + jump List.705 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41; -procedure List.103 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46): - joinpoint List.760 List.178 List.179 List.180 List.181 List.182: - let List.762 : Int1 = CallByName Num.22 List.181 List.182; - if List.762 then - let List.766 : {Str, I64} = CallByName List.66 List.178 List.181; - inc List.766; - let List.183 : {Str, Int1} = CallByName Dict.188 List.179 List.766 List.180; - let List.765 : U64 = 1i64; - let List.764 : U64 = CallByName Num.51 List.181 List.765; - jump List.760 List.178 List.183 List.180 List.764 List.182; +procedure List.104 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46): + joinpoint List.768 List.179 List.180 List.181 List.182 List.183: + let List.770 : Int1 = CallByName Num.22 List.182 List.183; + if List.770 then + let List.774 : {Str, I64} = CallByName List.66 List.179 List.182; + inc List.774; + let List.184 : {Str, Int1} = CallByName Dict.188 List.180 List.774 List.181; + let List.773 : U64 = 1i64; + let List.772 : U64 = CallByName Num.51 List.182 List.773; + jump List.768 List.179 List.184 List.181 List.772 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.42; - jump List.760 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46; + jump List.768 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46; -procedure List.104 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51): - joinpoint List.736 List.187 List.188 List.189 List.190 List.191: - let List.738 : Int1 = CallByName Num.22 List.190 List.191; - if List.738 then - let List.742 : {Str, I64} = CallByName List.66 List.187 List.190; - inc List.742; - let List.192 : List {U32, U32} = CallByName Dict.407 List.188 List.742 List.190 List.189; - let List.741 : U64 = 1i64; - let List.740 : U64 = CallByName Num.51 List.190 List.741; - jump List.736 List.187 List.192 List.189 List.740 List.191; +procedure List.105 (#Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51): + joinpoint List.744 List.188 List.189 List.190 List.191 List.192: + let List.746 : Int1 = CallByName Num.22 List.191 List.192; + if List.746 then + let List.750 : {Str, I64} = CallByName List.66 List.188 List.191; + inc List.750; + let List.193 : List {U32, U32} = CallByName Dict.407 List.189 List.750 List.191 List.190; + let List.749 : U64 = 1i64; + let List.748 : U64 = CallByName Num.51 List.191 List.749; + jump List.744 List.188 List.193 List.190 List.748 List.192; else - dec List.187; - ret List.188; + dec List.188; + ret List.189; in inc #Derived_gen.47; - jump List.736 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51; + jump List.744 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51; -procedure List.11 (List.153, List.154): - let List.756 : List {U32, U32} = CallByName List.68 List.154; - let List.755 : List {U32, U32} = CallByName List.101 List.153 List.154 List.756; - ret List.755; +procedure List.11 (List.154, List.155): + let List.764 : List {U32, U32} = CallByName List.68 List.155; + let List.763 : List {U32, U32} = CallByName List.102 List.154 List.155 List.764; + ret List.763; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.18 (List.175, List.176, List.177): - let List.758 : U64 = 0i64; - let List.759 : U64 = CallByName List.6 List.175; - let List.757 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.758 List.759; - ret List.757; +procedure List.18 (List.176, List.177, List.178): + let List.766 : U64 = 0i64; + let List.767 : U64 = CallByName List.6 List.176; + let List.765 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.766 List.767; + ret List.765; -procedure List.3 (List.131, List.132, List.133): - let List.720 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.131 List.132 List.133; - let List.719 : List {U32, U32} = StructAtIndex 0 List.720; - ret List.719; +procedure List.3 (List.132, List.133, List.134): + let List.728 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.132 List.133 List.134; + let List.727 : List {U32, U32} = StructAtIndex 0 List.728; + ret List.727; -procedure List.3 (List.131, List.132, List.133): - let List.722 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.131 List.132 List.133; - let List.721 : List {Str, I64} = StructAtIndex 0 List.722; - let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.722; +procedure List.3 (List.132, List.133, List.134): + let List.730 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.132 List.133 List.134; + let List.729 : List {Str, I64} = StructAtIndex 0 List.730; + let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.730; dec #Derived_gen.74; - ret List.721; + ret List.729; -procedure List.4 (List.139, List.140): - let List.731 : U64 = 1i64; - let List.729 : List {Str, I64} = CallByName List.70 List.139 List.731; - let List.728 : List {Str, I64} = CallByName List.71 List.729 List.140; - ret List.728; +procedure List.4 (List.140, List.141): + let List.739 : U64 = 1i64; + let List.737 : List {Str, I64} = CallByName List.70 List.140 List.739; + let List.736 : List {Str, I64} = CallByName List.71 List.737 List.141; + ret List.736; procedure List.6 (#Attr.2): - let List.710 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.710; + let List.718 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.718; procedure List.6 (#Attr.2): - let List.768 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.768; + let List.776 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.776; procedure List.6 (#Attr.2): - let List.769 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.769; + let List.777 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.777; -procedure List.64 (List.128, List.129, List.130): - let List.718 : U64 = CallByName List.6 List.128; - let List.715 : Int1 = CallByName Num.22 List.129 List.718; - if List.715 then - let List.716 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.128 List.129 List.130; - ret List.716; +procedure List.64 (List.129, List.130, List.131): + let List.726 : U64 = CallByName List.6 List.129; + let List.723 : Int1 = CallByName Num.22 List.130 List.726; + if List.723 then + let List.724 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.129 List.130 List.131; + ret List.724; else - let List.714 : {List {U32, U32}, {U32, U32}} = Struct {List.128, List.130}; - ret List.714; + let List.722 : {List {U32, U32}, {U32, U32}} = Struct {List.129, List.131}; + ret List.722; -procedure List.64 (List.128, List.129, List.130): - let List.727 : U64 = CallByName List.6 List.128; - let List.724 : Int1 = CallByName Num.22 List.129 List.727; - if List.724 then - let List.725 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.128 List.129 List.130; - ret List.725; +procedure List.64 (List.129, List.130, List.131): + let List.735 : U64 = CallByName List.6 List.129; + let List.732 : Int1 = CallByName Num.22 List.130 List.735; + if List.732 then + let List.733 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.129 List.130 List.131; + ret List.733; else - let List.723 : {List {Str, I64}, {Str, I64}} = Struct {List.128, List.130}; - ret List.723; + let List.731 : {List {Str, I64}, {Str, I64}} = Struct {List.129, List.131}; + ret List.731; procedure List.66 (#Attr.2, #Attr.3): - let List.767 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.767; + let List.775 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.775; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.717 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.717; + let List.725 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.725; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.726 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.726; + let List.734 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.734; procedure List.68 (#Attr.2): - let List.754 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; - ret List.754; + let List.762 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2; + ret List.762; procedure List.70 (#Attr.2, #Attr.3): - let List.732 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.732; + let List.740 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.740; procedure List.71 (#Attr.2, #Attr.3): - let List.730 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.730; + let List.738 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.738; procedure List.71 (#Attr.2, #Attr.3): - let List.751 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.751; + let List.759 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.759; -procedure List.83 (List.184, List.185, List.186): - let List.734 : U64 = 0i64; - let List.735 : U64 = CallByName List.6 List.184; - let List.733 : List {U32, U32} = CallByName List.104 List.184 List.185 List.186 List.734 List.735; - ret List.733; +procedure List.83 (List.185, List.186, List.187): + let List.742 : U64 = 0i64; + let List.743 : U64 = CallByName List.6 List.185; + let List.741 : List {U32, U32} = CallByName List.105 List.185 List.186 List.187 List.742 List.743; + ret List.741; procedure Num.131 (#Attr.2): let Num.297 : 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 084572e4f0..d2915b9db2 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_list.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_list.txt @@ -120,35 +120,35 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.103 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : I64 = CallByName List.66 List.178 List.181; - let List.183 : {Str, Int1} = CallByName Inspect.160 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : I64 = CallByName List.66 List.179 List.182; + let List.184 : {Str, Int1} = CallByName Inspect.160 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.10; - jump List.697 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; + jump List.705 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.22 (#Attr.2, #Attr.3): let Num.291 : 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 b1672b6eaf..0eedef01bc 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 @@ -231,67 +231,67 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.103 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.33; - jump List.697 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; + jump List.705 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37; -procedure List.103 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42): - joinpoint List.709 List.178 List.179 List.180 List.181 List.182: - let List.711 : Int1 = CallByName Num.22 List.181 List.182; - if List.711 then - let List.715 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.715; - let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.715; - let List.714 : U64 = 1i64; - let List.713 : U64 = CallByName Num.51 List.181 List.714; - jump List.709 List.178 List.183 List.180 List.713 List.182; +procedure List.104 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42): + joinpoint List.717 List.179 List.180 List.181 List.182 List.183: + let List.719 : Int1 = CallByName Num.22 List.182 List.183; + if List.719 then + let List.723 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.723; + let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.723; + let List.722 : U64 = 1i64; + let List.721 : U64 = CallByName Num.51 List.182 List.722; + jump List.717 List.179 List.184 List.181 List.721 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.38; - jump List.709 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42; + jump List.717 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.18 (List.175, List.176, List.177): - let List.707 : U64 = 0i64; - let List.708 : U64 = CallByName List.6 List.175; - let List.706 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.707 List.708; - ret List.706; +procedure List.18 (List.176, List.177, List.178): + let List.715 : U64 = 0i64; + let List.716 : U64 = CallByName List.6 List.176; + let List.714 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.715 List.716; + ret List.714; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.6 (#Attr.2): - let List.717 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.717; + let List.725 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.725; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.66 (#Attr.2, #Attr.3): - let List.716 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.716; + let List.724 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.724; procedure Num.20 (#Attr.2, #Attr.3): let Num.296 : U64 = lowlevel NumSub #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 353c816d1c..b42edbbc6a 100644 --- a/crates/compiler/test_mono/generated/inspect_derived_record.txt +++ b/crates/compiler/test_mono/generated/inspect_derived_record.txt @@ -150,36 +150,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.103 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {[C I64, C Decimal], Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {[C I64, C Decimal], Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.16; - jump List.697 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; + jump List.705 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.22 (#Attr.2, #Attr.3): let Num.292 : 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 b04d7d8fe7..4ed69f3b8e 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 @@ -156,36 +156,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.103 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.21; - jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; + jump List.705 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.20 (#Attr.2, #Attr.3): let Num.294 : U64 = lowlevel NumSub #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 86626aa630..da3786caa6 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 @@ -163,36 +163,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.103 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : {Str, Str} = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : {Str, Int1} = CallByName Inspect.229 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : {Str, Str} = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : {Str, Int1} = CallByName Inspect.229 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.25; - jump List.697 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29; + jump List.705 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : {Str, Int1} = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : {Str, Int1} = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.20 (#Attr.2, #Attr.3): let Num.294 : U64 = lowlevel NumSub #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 d67bf0e81f..dc27611f9d 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 @@ -156,43 +156,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.1 (List.122): - let List.707 : U64 = CallByName List.6 List.122; - let List.708 : U64 = 0i64; - let List.706 : Int1 = CallByName Bool.9 List.707 List.708; - ret List.706; +procedure List.1 (List.123): + let List.715 : U64 = CallByName List.6 List.123; + let List.716 : U64 = 0i64; + let List.714 : Int1 = CallByName Bool.9 List.715 List.716; + ret List.714; -procedure List.103 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Str = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : Str = CallByName Inspect.207 List.179 List.703; - dec List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Str = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : Str = CallByName Inspect.207 List.180 List.711; + dec List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.21; - jump List.697 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; + jump List.705 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : Str = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : Str = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.20 (#Attr.2, #Attr.3): let Num.294 : U64 = lowlevel NumSub #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 956dc01742..6966e5af01 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 @@ -159,43 +159,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291): procedure Inspect.64 (Inspect.297): ret Inspect.297; -procedure List.1 (List.122): - let List.707 : U64 = CallByName List.6 List.122; - let List.708 : U64 = 0i64; - let List.706 : Int1 = CallByName Bool.9 List.707 List.708; - ret List.706; +procedure List.1 (List.123): + let List.715 : U64 = CallByName List.6 List.123; + let List.716 : U64 = 0i64; + let List.714 : Int1 = CallByName Bool.9 List.715 List.716; + ret List.714; -procedure List.103 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Str = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : Str = CallByName Inspect.207 List.179 List.703; - dec List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Str = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : Str = CallByName Inspect.207 List.180 List.711; + dec List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.22; - jump List.697 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; + jump List.705 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : Str = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : Str = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.20 (#Attr.2, #Attr.3): let Num.294 : U64 = lowlevel NumSub #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 e031b290c9..d907d18d59 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.694 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.694; + let List.702 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.702; procedure Num.19 (#Attr.2, #Attr.3): let Num.291 : 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 1b2f3a6d4e..75acdc95f9 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.9 (#Attr.2, #Attr.3): let Bool.22 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.22; -procedure List.2 (List.123, List.124): - let List.708 : U64 = CallByName List.6 List.123; - let List.704 : Int1 = CallByName Num.22 List.124 List.708; - if List.704 then - let List.706 : I64 = CallByName List.66 List.123 List.124; - let List.705 : [C {}, C I64] = TagId(1) List.706; - ret List.705; +procedure List.2 (List.124, List.125): + let List.716 : U64 = CallByName List.6 List.124; + let List.712 : Int1 = CallByName Num.22 List.125 List.716; + if List.712 then + let List.714 : I64 = CallByName List.66 List.124 List.125; + let List.713 : [C {}, C I64] = TagId(1) List.714; + ret List.713; else - let List.703 : {} = Struct {}; - let List.702 : [C {}, C I64] = TagId(0) List.703; - ret List.702; + let List.711 : {} = Struct {}; + let List.710 : [C {}, C I64] = TagId(0) List.711; + ret List.710; procedure List.6 (#Attr.2): - let List.709 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.709; + let List.717 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.717; procedure List.66 (#Attr.2, #Attr.3): - let List.707 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.715 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.715; -procedure List.9 (List.404): - let List.701 : U64 = 0i64; - let List.694 : [C {}, C I64] = CallByName List.2 List.404 List.701; - let List.698 : U8 = 1i64; - let List.699 : U8 = GetTagId List.694; - let List.700 : Int1 = lowlevel Eq List.698 List.699; - if List.700 then - let List.405 : I64 = UnionAtIndex (Id 1) (Index 0) List.694; - let List.695 : [C Int1, C I64] = TagId(1) List.405; - ret List.695; +procedure List.9 (List.405): + let List.709 : U64 = 0i64; + let List.702 : [C {}, C I64] = CallByName List.2 List.405 List.709; + let List.706 : U8 = 1i64; + let List.707 : U8 = GetTagId List.702; + let List.708 : Int1 = lowlevel Eq List.706 List.707; + if List.708 then + let List.406 : I64 = UnionAtIndex (Id 1) (Index 0) List.702; + let List.703 : [C Int1, C I64] = TagId(1) List.406; + ret List.703; else - let List.697 : Int1 = true; - let List.696 : [C Int1, C I64] = TagId(0) List.697; - ret List.696; + let List.705 : Int1 = true; + let List.704 : [C Int1, C I64] = TagId(0) List.705; + ret List.704; procedure Num.22 (#Attr.2, #Attr.3): let Num.289 : 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 58d24d3f86..93059daa76 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.22 : Int1 = true; ret Bool.22; -procedure List.109 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35): - joinpoint List.732 List.303 List.304 List.305 List.306 List.307 List.308: - let List.734 : Int1 = CallByName Num.22 List.307 List.308; - if List.734 then - let List.740 : [C I64, C List *self] = CallByName List.66 List.303 List.307; - inc List.740; - let List.741 : [C I64, C List *self] = CallByName List.66 List.304 List.307; - inc List.741; - let List.309 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.740 List.741; - let List.736 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.305 List.309; - let List.738 : U64 = 1i64; - let List.737 : U64 = CallByName Num.51 List.307 List.738; - jump List.732 List.303 List.304 List.736 List.306 List.737 List.308; +procedure List.110 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35): + joinpoint List.740 List.304 List.305 List.306 List.307 List.308 List.309: + let List.742 : Int1 = CallByName Num.22 List.308 List.309; + if List.742 then + let List.748 : [C I64, C List *self] = CallByName List.66 List.304 List.308; + inc List.748; + let List.749 : [C I64, C List *self] = CallByName List.66 List.305 List.308; + inc List.749; + let List.310 : {[C I64, C List *self], [C I64, C List *self]} = CallByName Test.15 List.748 List.749; + let List.744 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.71 List.306 List.310; + let List.746 : U64 = 1i64; + let List.745 : U64 = CallByName Num.51 List.308 List.746; + jump List.740 List.304 List.305 List.744 List.307 List.745 List.309; else dec List.304; - dec List.303; - ret List.305; + dec List.305; + ret List.306; in inc Bool.30; inc Bool.31; - jump List.732 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35; + jump List.740 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35; -procedure List.119 (List.582, List.583, List.584): - let List.708 : U64 = 0i64; - let List.709 : U64 = CallByName List.6 List.582; - let List.707 : [C {}, C {}] = CallByName List.80 List.582 List.583 List.584 List.708 List.709; - ret List.707; +procedure List.120 (List.590, List.591, List.592): + let List.716 : U64 = 0i64; + let List.717 : U64 = CallByName List.6 List.590; + let List.715 : [C {}, C {}] = CallByName List.80 List.590 List.591 List.592 List.716 List.717; + ret List.715; -procedure List.23 (List.299, List.300, List.301): - let List.744 : U64 = CallByName List.6 List.299; - let List.745 : U64 = CallByName List.6 List.300; - let List.302 : U64 = CallByName Num.148 List.744 List.745; - let List.730 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.302; - let List.731 : U64 = 0i64; - let List.729 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.109 List.299 List.300 List.730 List.301 List.731 List.302; - ret List.729; +procedure List.23 (List.300, List.301, List.302): + let List.752 : U64 = CallByName List.6 List.300; + let List.753 : U64 = CallByName List.6 List.301; + let List.303 : U64 = CallByName Num.148 List.752 List.753; + let List.738 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.68 List.303; + let List.739 : U64 = 0i64; + let List.737 : List {[C I64, C List *self], [C I64, C List *self]} = CallByName List.110 List.300 List.301 List.738 List.302 List.739 List.303; + ret List.737; -procedure List.251 (List.696, List.252, List.250): - let List.726 : Int1 = CallByName Test.1 List.252; - if List.726 then - let List.728 : {} = Struct {}; - let List.727 : [C {}, C {}] = TagId(1) List.728; - ret List.727; +procedure List.252 (List.704, List.253, List.251): + let List.734 : Int1 = CallByName Test.1 List.253; + if List.734 then + let List.736 : {} = Struct {}; + let List.735 : [C {}, C {}] = TagId(1) List.736; + ret List.735; else - let List.725 : {} = Struct {}; - let List.724 : [C {}, C {}] = TagId(0) List.725; - ret List.724; + let List.733 : {} = Struct {}; + let List.732 : [C {}, C {}] = TagId(0) List.733; + ret List.732; -procedure List.56 (List.249, List.250): - let List.705 : {} = Struct {}; - let List.697 : [C {}, C {}] = CallByName List.119 List.249 List.705 List.250; - let List.702 : U8 = 1i64; - let List.703 : U8 = GetTagId List.697; - let List.704 : Int1 = lowlevel Eq List.702 List.703; - if List.704 then - let List.698 : Int1 = CallByName Bool.2; - ret List.698; +procedure List.56 (List.250, List.251): + let List.713 : {} = Struct {}; + let List.705 : [C {}, C {}] = CallByName List.120 List.250 List.713 List.251; + let List.710 : U8 = 1i64; + let List.711 : U8 = GetTagId List.705; + let List.712 : Int1 = lowlevel Eq List.710 List.711; + if List.712 then + let List.706 : Int1 = CallByName Bool.2; + ret List.706; else - let List.699 : Int1 = CallByName Bool.1; - ret List.699; + let List.707 : Int1 = CallByName Bool.1; + ret List.707; procedure List.6 (#Attr.2): - let List.695 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.695; + let List.703 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.703; procedure List.6 (#Attr.2): - let List.723 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.723; + let List.731 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.731; procedure List.66 (#Attr.2, #Attr.3): - let List.722 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.722; + let List.730 : {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.730; procedure List.66 (#Attr.2, #Attr.3): - let List.742 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.742; + let List.750 : [C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.750; procedure List.68 (#Attr.2): - let List.743 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; - ret List.743; + let List.751 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2; + ret List.751; procedure List.71 (#Attr.2, #Attr.3): - let List.739 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.739; + let List.747 : List {[C I64, C List *self], [C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.747; procedure List.80 (Bool.25, Bool.26, Bool.27, Bool.28, Bool.29): - joinpoint List.710 List.585 List.586 List.587 List.588 List.589: - let List.712 : Int1 = CallByName Num.22 List.588 List.589; - if List.712 then - let List.721 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.585 List.588; - inc List.721; - let List.713 : [C {}, C {}] = CallByName List.251 List.586 List.721 List.587; - let List.718 : U8 = 1i64; - let List.719 : U8 = GetTagId List.713; - let List.720 : Int1 = lowlevel Eq List.718 List.719; - if List.720 then - let List.590 : {} = UnionAtIndex (Id 1) (Index 0) List.713; - let List.716 : U64 = 1i64; - let List.715 : U64 = CallByName Num.51 List.588 List.716; - jump List.710 List.585 List.590 List.587 List.715 List.589; + joinpoint List.718 List.593 List.594 List.595 List.596 List.597: + let List.720 : Int1 = CallByName Num.22 List.596 List.597; + if List.720 then + let List.729 : {[C I64, C List *self], [C I64, C List *self]} = CallByName List.66 List.593 List.596; + inc List.729; + let List.721 : [C {}, C {}] = CallByName List.252 List.594 List.729 List.595; + let List.726 : U8 = 1i64; + let List.727 : U8 = GetTagId List.721; + let List.728 : Int1 = lowlevel Eq List.726 List.727; + if List.728 then + let List.598 : {} = UnionAtIndex (Id 1) (Index 0) List.721; + let List.724 : U64 = 1i64; + let List.723 : U64 = CallByName Num.51 List.596 List.724; + jump List.718 List.593 List.598 List.595 List.723 List.597; else - dec List.585; - let List.591 : {} = UnionAtIndex (Id 0) (Index 0) List.713; - let List.717 : [C {}, C {}] = TagId(0) List.591; - ret List.717; + dec List.593; + let List.599 : {} = UnionAtIndex (Id 0) (Index 0) List.721; + let List.725 : [C {}, C {}] = TagId(0) List.599; + ret List.725; else - dec List.585; - let List.711 : [C {}, C {}] = TagId(1) List.586; - ret List.711; + dec List.593; + let List.719 : [C {}, C {}] = TagId(1) List.594; + ret List.719; in inc Bool.25; - jump List.710 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29; + jump List.718 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29; procedure Num.148 (Num.232, Num.233): let Num.296 : Int1 = CallByName Num.22 Num.232 Num.233; 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 77ef060092..2d03765dea 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : [C *self, ] = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : [, C {[C *self, ], *self}] = CallByName Test.7 List.179 List.703; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : [C *self, ] = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : [, C {[C *self, ], *self}] = CallByName Test.7 List.180 List.711; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.697 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.705 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : [, C {[C *self, ], *self}] = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : [, C {[C *self, ], *self}] = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; procedure List.6 (#Attr.2): - let List.705 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.705; + let List.713 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.713; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : [C *self, ] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 b1fa479ac7..5d9fa99ddd 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.139, List.140): - let List.697 : U64 = 1i64; - let List.695 : List I64 = CallByName List.70 List.139 List.697; - let List.694 : List I64 = CallByName List.71 List.695 List.140; - ret List.694; +procedure List.4 (List.140, List.141): + let List.705 : U64 = 1i64; + let List.703 : List I64 = CallByName List.70 List.140 List.705; + let List.702 : List I64 = CallByName List.71 List.703 List.141; + ret List.702; procedure List.70 (#Attr.2, #Attr.3): - let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.698; + let List.706 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.706; procedure List.71 (#Attr.2, #Attr.3): - let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.696; + let List.704 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.704; 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 3d34a2147e..ccb0ac56ca 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.139, List.140): - let List.697 : U64 = 1i64; - let List.695 : List I64 = CallByName List.70 List.139 List.697; - let List.694 : List I64 = CallByName List.71 List.695 List.140; - ret List.694; +procedure List.4 (List.140, List.141): + let List.705 : U64 = 1i64; + let List.703 : List I64 = CallByName List.70 List.140 List.705; + let List.702 : List I64 = CallByName List.71 List.703 List.141; + ret List.702; procedure List.70 (#Attr.2, #Attr.3): - let List.698 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.698; + let List.706 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.706; procedure List.71 (#Attr.2, #Attr.3): - let List.696 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.696; + let List.704 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.704; 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 968ae0be25..4127b829fb 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.131, List.132, List.133): - let List.697 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133; - let List.696 : List I64 = StructAtIndex 0 List.697; - ret List.696; +procedure List.3 (List.132, List.133, List.134): + let List.705 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134; + let List.704 : List I64 = StructAtIndex 0 List.705; + ret List.704; procedure List.6 (#Attr.2): - let List.695 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.695; + let List.703 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.703; -procedure List.64 (List.128, List.129, List.130): - let List.702 : U64 = CallByName List.6 List.128; - let List.699 : Int1 = CallByName Num.22 List.129 List.702; - if List.699 then - let List.700 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130; - ret List.700; +procedure List.64 (List.129, List.130, List.131): + let List.710 : U64 = CallByName List.6 List.129; + let List.707 : Int1 = CallByName Num.22 List.130 List.710; + if List.707 then + let List.708 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131; + ret List.708; else - let List.698 : {List I64, I64} = Struct {List.128, List.130}; - ret List.698; + let List.706 : {List I64, I64} = Struct {List.129, List.131}; + ret List.706; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.701 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.701; + let List.709 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.709; procedure Num.19 (#Attr.2, #Attr.3): let Num.289 : 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 d198ffa86d..54997cd57f 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.123, List.124): - let List.700 : U64 = CallByName List.6 List.123; - let List.696 : Int1 = CallByName Num.22 List.124 List.700; - if List.696 then - let List.698 : I64 = CallByName List.66 List.123 List.124; - let List.697 : [C {}, C I64] = TagId(1) List.698; - ret List.697; +procedure List.2 (List.124, List.125): + let List.708 : U64 = CallByName List.6 List.124; + let List.704 : Int1 = CallByName Num.22 List.125 List.708; + if List.704 then + let List.706 : I64 = CallByName List.66 List.124 List.125; + let List.705 : [C {}, C I64] = TagId(1) List.706; + ret List.705; else - let List.695 : {} = Struct {}; - let List.694 : [C {}, C I64] = TagId(0) List.695; - ret List.694; + let List.703 : {} = Struct {}; + let List.702 : [C {}, C I64] = TagId(0) List.703; + ret List.702; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; procedure List.66 (#Attr.2, #Attr.3): - let List.699 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.699; + let List.707 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.289 : 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 97fe0cbbe3..8162fa185e 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.694 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.694; + let List.702 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.702; procedure List.6 (#Attr.2): - let List.695 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.695; + let List.703 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.703; procedure Num.19 (#Attr.2, #Attr.3): let Num.289 : 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 8f4583b6db..3ac12a39bc 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.708 List.178 List.179 List.180 List.181 List.182: - let List.710 : Int1 = CallByName Num.22 List.181 List.182; - if List.710 then - let List.714 : Str = CallByName List.66 List.178 List.181; - inc List.714; - let List.183 : List Str = CallByName List.296 List.179 List.714 List.180; - dec List.714; - let List.713 : U64 = 1i64; - let List.712 : U64 = CallByName Num.51 List.181 List.713; - jump List.708 List.178 List.183 List.180 List.712 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.716 List.179 List.180 List.181 List.182 List.183: + let List.718 : Int1 = CallByName Num.22 List.182 List.183; + if List.718 then + let List.722 : Str = CallByName List.66 List.179 List.182; + inc List.722; + let List.184 : List Str = CallByName List.297 List.180 List.722 List.181; + dec List.722; + let List.721 : U64 = 1i64; + let List.720 : U64 = CallByName Num.51 List.182 List.721; + jump List.716 List.179 List.184 List.181 List.720 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.716 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.706 : U64 = 0i64; - let List.707 : U64 = CallByName List.6 List.175; - let List.705 : List Str = CallByName List.103 List.175 List.176 List.177 List.706 List.707; - ret List.705; +procedure List.18 (List.176, List.177, List.178): + let List.714 : U64 = 0i64; + let List.715 : U64 = CallByName List.6 List.176; + let List.713 : List Str = CallByName List.104 List.176 List.177 List.178 List.714 List.715; + ret List.713; -procedure List.2 (List.123, List.124): - let List.700 : U64 = CallByName List.6 List.123; - let List.696 : Int1 = CallByName Num.22 List.124 List.700; - if List.696 then - let List.698 : Str = CallByName List.66 List.123 List.124; - inc List.698; - let List.697 : [C {}, C Str] = TagId(1) List.698; - ret List.697; +procedure List.2 (List.124, List.125): + let List.708 : U64 = CallByName List.6 List.124; + let List.704 : Int1 = CallByName Num.22 List.125 List.708; + if List.704 then + let List.706 : Str = CallByName List.66 List.124 List.125; + inc List.706; + let List.705 : [C {}, C Str] = TagId(1) List.706; + ret List.705; else - let List.695 : {} = Struct {}; - let List.694 : [C {}, C Str] = TagId(0) List.695; - ret List.694; + let List.703 : {} = Struct {}; + let List.702 : [C {}, C Str] = TagId(0) List.703; + ret List.702; -procedure List.296 (List.297, List.298, List.294): - let List.717 : Str = CallByName Test.3 List.298; - let List.716 : List Str = CallByName List.71 List.297 List.717; - ret List.716; +procedure List.297 (List.298, List.299, List.295): + let List.725 : Str = CallByName Test.3 List.299; + let List.724 : List Str = CallByName List.71 List.298 List.725; + ret List.724; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.703 : List Str = CallByName List.68 List.295; - let List.702 : List Str = CallByName List.18 List.293 List.703 List.294; - ret List.702; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.711 : List Str = CallByName List.68 List.296; + let List.710 : List Str = CallByName List.18 List.294 List.711 List.295; + ret List.710; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; procedure List.66 (#Attr.2, #Attr.3): - let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.699; + let List.707 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; procedure List.68 (#Attr.2): - let List.719 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.719; + let List.727 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.727; procedure List.71 (#Attr.2, #Attr.3): - let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.718; + let List.726 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.726; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 d6c658c0d9..a72a8f4828 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.708 List.178 List.179 List.180 List.181 List.182: - let List.710 : Int1 = CallByName Num.22 List.181 List.182; - if List.710 then - let List.714 : Str = CallByName List.66 List.178 List.181; - inc List.714; - let List.183 : List Str = CallByName List.296 List.179 List.714 List.180; - let List.713 : U64 = 1i64; - let List.712 : U64 = CallByName Num.51 List.181 List.713; - jump List.708 List.178 List.183 List.180 List.712 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.716 List.179 List.180 List.181 List.182 List.183: + let List.718 : Int1 = CallByName Num.22 List.182 List.183; + if List.718 then + let List.722 : Str = CallByName List.66 List.179 List.182; + inc List.722; + let List.184 : List Str = CallByName List.297 List.180 List.722 List.181; + let List.721 : U64 = 1i64; + let List.720 : U64 = CallByName Num.51 List.182 List.721; + jump List.716 List.179 List.184 List.181 List.720 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.716 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.706 : U64 = 0i64; - let List.707 : U64 = CallByName List.6 List.175; - let List.705 : List Str = CallByName List.103 List.175 List.176 List.177 List.706 List.707; - ret List.705; +procedure List.18 (List.176, List.177, List.178): + let List.714 : U64 = 0i64; + let List.715 : U64 = CallByName List.6 List.176; + let List.713 : List Str = CallByName List.104 List.176 List.177 List.178 List.714 List.715; + ret List.713; -procedure List.2 (List.123, List.124): - let List.700 : U64 = CallByName List.6 List.123; - let List.696 : Int1 = CallByName Num.22 List.124 List.700; - if List.696 then - let List.698 : Str = CallByName List.66 List.123 List.124; - inc List.698; - let List.697 : [C {}, C Str] = TagId(1) List.698; - ret List.697; +procedure List.2 (List.124, List.125): + let List.708 : U64 = CallByName List.6 List.124; + let List.704 : Int1 = CallByName Num.22 List.125 List.708; + if List.704 then + let List.706 : Str = CallByName List.66 List.124 List.125; + inc List.706; + let List.705 : [C {}, C Str] = TagId(1) List.706; + ret List.705; else - let List.695 : {} = Struct {}; - let List.694 : [C {}, C Str] = TagId(0) List.695; - ret List.694; + let List.703 : {} = Struct {}; + let List.702 : [C {}, C Str] = TagId(0) List.703; + ret List.702; -procedure List.296 (List.297, List.298, List.294): - let List.717 : Str = CallByName Test.3 List.298; - let List.716 : List Str = CallByName List.71 List.297 List.717; - ret List.716; +procedure List.297 (List.298, List.299, List.295): + let List.725 : Str = CallByName Test.3 List.299; + let List.724 : List Str = CallByName List.71 List.298 List.725; + ret List.724; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.703 : List Str = CallByName List.68 List.295; - let List.702 : List Str = CallByName List.18 List.293 List.703 List.294; - ret List.702; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.711 : List Str = CallByName List.68 List.296; + let List.710 : List Str = CallByName List.18 List.294 List.711 List.295; + ret List.710; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; procedure List.66 (#Attr.2, #Attr.3): - let List.699 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.699; + let List.707 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.707; procedure List.68 (#Attr.2): - let List.719 : List Str = lowlevel ListWithCapacity #Attr.2; - ret List.719; + let List.727 : List Str = lowlevel ListWithCapacity #Attr.2; + ret List.727; procedure List.71 (#Attr.2, #Attr.3): - let List.718 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.718; + let List.726 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.726; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 4d446d0a49..a284285dfe 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.103 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): - joinpoint List.700 List.178 List.179 List.180 List.181 List.182: - let List.702 : Int1 = CallByName Num.22 List.181 List.182; - if List.702 then - let List.706 : U8 = CallByName List.66 List.178 List.181; - let List.183 : List U8 = CallByName List.296 List.179 List.706 List.180; - let List.705 : U64 = 1i64; - let List.704 : U64 = CallByName Num.51 List.181 List.705; - jump List.700 List.178 List.183 List.180 List.704 List.182; +procedure List.104 (Bool.21, Bool.22, Bool.23, Bool.24, Bool.25): + joinpoint List.708 List.179 List.180 List.181 List.182 List.183: + let List.710 : Int1 = CallByName Num.22 List.182 List.183; + if List.710 then + let List.714 : U8 = CallByName List.66 List.179 List.182; + let List.184 : List U8 = CallByName List.297 List.180 List.714 List.181; + let List.713 : U64 = 1i64; + let List.712 : U64 = CallByName Num.51 List.182 List.713; + jump List.708 List.179 List.184 List.181 List.712 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.21; - jump List.700 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; + jump List.708 Bool.21 Bool.22 Bool.23 Bool.24 Bool.25; -procedure List.18 (List.175, List.176, List.177): - let List.698 : U64 = 0i64; - let List.699 : U64 = CallByName List.6 List.175; - let List.697 : List U8 = CallByName List.103 List.175 List.176 List.177 List.698 List.699; - ret List.697; +procedure List.18 (List.176, List.177, List.178): + let List.706 : U64 = 0i64; + let List.707 : U64 = CallByName List.6 List.176; + let List.705 : List U8 = CallByName List.104 List.176 List.177 List.178 List.706 List.707; + ret List.705; -procedure List.296 (List.297, List.298, List.294): - let List.713 : U8 = GetTagId List.294; - joinpoint List.714 List.711: - let List.710 : List U8 = CallByName List.71 List.297 List.711; - ret List.710; +procedure List.297 (List.298, List.299, List.295): + let List.721 : U8 = GetTagId List.295; + joinpoint List.722 List.719: + let List.718 : List U8 = CallByName List.71 List.298 List.719; + ret List.718; in - switch List.713: + switch List.721: case 0: - let List.715 : U8 = CallByName Test.4 List.298 List.294; - jump List.714 List.715; + let List.723 : U8 = CallByName Test.4 List.299 List.295; + jump List.722 List.723; case 1: - let List.715 : U8 = CallByName Test.6 List.298 List.294; - jump List.714 List.715; + let List.723 : U8 = CallByName Test.6 List.299 List.295; + jump List.722 List.723; default: - let List.715 : U8 = CallByName Test.8 List.298; - jump List.714 List.715; + let List.723 : U8 = CallByName Test.8 List.299; + jump List.722 List.723; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.695 : List U8 = CallByName List.68 List.295; - let List.694 : List U8 = CallByName List.18 List.293 List.695 List.294; - ret List.694; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.703 : List U8 = CallByName List.68 List.296; + let List.702 : List U8 = CallByName List.18 List.294 List.703 List.295; + ret List.702; procedure List.6 (#Attr.2): - let List.708 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.708; - -procedure List.66 (#Attr.2, #Attr.3): - let List.707 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; - -procedure List.68 (#Attr.2): - let List.716 : List U8 = lowlevel ListWithCapacity #Attr.2; + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; ret List.716; +procedure List.66 (#Attr.2, #Attr.3): + let List.715 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.715; + +procedure List.68 (#Attr.2): + let List.724 : List U8 = lowlevel ListWithCapacity #Attr.2; + ret List.724; + procedure List.71 (#Attr.2, #Attr.3): - let List.712 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.712; + let List.720 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.720; procedure Num.19 (#Attr.2, #Attr.3): let Num.291 : 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 2e85cc2910..5b949b0b43 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.131, List.132, List.133): - let List.695 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133; - let List.694 : List I64 = StructAtIndex 0 List.695; - ret List.694; +procedure List.3 (List.132, List.133, List.134): + let List.703 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134; + let List.702 : List I64 = StructAtIndex 0 List.703; + ret List.702; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; -procedure List.64 (List.128, List.129, List.130): - let List.700 : U64 = CallByName List.6 List.128; - let List.697 : Int1 = CallByName Num.22 List.129 List.700; - if List.697 then - let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130; - ret List.698; +procedure List.64 (List.129, List.130, List.131): + let List.708 : U64 = CallByName List.6 List.129; + let List.705 : Int1 = CallByName Num.22 List.130 List.708; + if List.705 then + let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131; + ret List.706; else - let List.696 : {List I64, I64} = Struct {List.128, List.130}; - ret List.696; + let List.704 : {List I64, I64} = Struct {List.129, List.131}; + ret List.704; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.699; + let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.289 : 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 ac59bcb528..4d0c40d30e 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.696 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; - ret List.696; + let List.704 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; + ret List.704; -procedure List.59 (List.399): - let List.695 : {} = Struct {}; - let List.694 : List I64 = CallByName List.28 List.399 List.695; - ret List.694; +procedure List.59 (List.400): + let List.703 : {} = Struct {}; + let List.702 : List I64 = CallByName List.28 List.400 List.703; + ret List.702; procedure Num.46 (#Attr.2, #Attr.3): let Num.289 : 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 5e2c50bcbf..fc0cabe244 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.123, List.124): - let List.716 : U64 = CallByName List.6 List.123; - let List.713 : Int1 = CallByName Num.22 List.124 List.716; - if List.713 then - let List.715 : I64 = CallByName List.66 List.123 List.124; - let List.714 : [C {}, C I64] = TagId(1) List.715; - ret List.714; +procedure List.2 (List.124, List.125): + let List.724 : U64 = CallByName List.6 List.124; + let List.721 : Int1 = CallByName Num.22 List.125 List.724; + if List.721 then + let List.723 : I64 = CallByName List.66 List.124 List.125; + let List.722 : [C {}, C I64] = TagId(1) List.723; + ret List.722; else - let List.712 : {} = Struct {}; - let List.711 : [C {}, C I64] = TagId(0) List.712; - ret List.711; + let List.720 : {} = Struct {}; + let List.719 : [C {}, C I64] = TagId(0) List.720; + ret List.719; -procedure List.3 (List.131, List.132, List.133): - let List.703 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133; - let List.702 : List I64 = StructAtIndex 0 List.703; - ret List.702; +procedure List.3 (List.132, List.133, List.134): + let List.711 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134; + let List.710 : List I64 = StructAtIndex 0 List.711; + ret List.710; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; - -procedure List.64 (List.128, List.129, List.130): - let List.700 : U64 = CallByName List.6 List.128; - let List.697 : Int1 = CallByName Num.22 List.129 List.700; - if List.697 then - let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130; - ret List.698; - else - let List.696 : {List I64, I64} = Struct {List.128, List.130}; - ret List.696; - -procedure List.66 (#Attr.2, #Attr.3): - let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; ret List.709; +procedure List.64 (List.129, List.130, List.131): + let List.708 : U64 = CallByName List.6 List.129; + let List.705 : Int1 = CallByName Num.22 List.130 List.708; + if List.705 then + let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131; + ret List.706; + else + let List.704 : {List I64, I64} = Struct {List.129, List.131}; + ret List.704; + +procedure List.66 (#Attr.2, #Attr.3): + let List.717 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.717; + procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.699; + let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.291 : 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 734e89a620..48a4bfabf4 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.131, List.132, List.133): - let List.703 : {List U64, U64} = CallByName List.64 List.131 List.132 List.133; - let List.702 : List U64 = StructAtIndex 0 List.703; - ret List.702; +procedure List.3 (List.132, List.133, List.134): + let List.711 : {List U64, U64} = CallByName List.64 List.132 List.133 List.134; + let List.710 : List U64 = StructAtIndex 0 List.711; + ret List.710; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.709; -procedure List.64 (List.128, List.129, List.130): - let List.700 : U64 = CallByName List.6 List.128; - let List.697 : Int1 = CallByName Num.22 List.129 List.700; - if List.697 then - let List.698 : {List U64, U64} = CallByName List.67 List.128 List.129 List.130; - ret List.698; +procedure List.64 (List.129, List.130, List.131): + let List.708 : U64 = CallByName List.6 List.129; + let List.705 : Int1 = CallByName Num.22 List.130 List.708; + if List.705 then + let List.706 : {List U64, U64} = CallByName List.67 List.129 List.130 List.131; + ret List.706; else - let List.696 : {List U64, U64} = Struct {List.128, List.130}; - ret List.696; + let List.704 : {List U64, U64} = Struct {List.129, List.131}; + ret List.704; procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.699 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.699; + let List.707 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.289 : 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 2610bb61d2..0f73bab314 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.103 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26): - joinpoint List.700 List.178 List.179 List.180 List.181 List.182: - let List.702 : Int1 = CallByName Num.22 List.181 List.182; - if List.702 then - let List.706 : [C List *self] = CallByName List.66 List.178 List.181; - inc List.706; - let List.183 : List [C List *self] = CallByName List.296 List.179 List.706 List.180; - let List.705 : U64 = 1i64; - let List.704 : U64 = CallByName Num.51 List.181 List.705; - jump List.700 List.178 List.183 List.180 List.704 List.182; +procedure List.104 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26): + joinpoint List.708 List.179 List.180 List.181 List.182 List.183: + let List.710 : Int1 = CallByName Num.22 List.182 List.183; + if List.710 then + let List.714 : [C List *self] = CallByName List.66 List.179 List.182; + inc List.714; + let List.184 : List [C List *self] = CallByName List.297 List.180 List.714 List.181; + let List.713 : U64 = 1i64; + let List.712 : U64 = CallByName Num.51 List.182 List.713; + jump List.708 List.179 List.184 List.181 List.712 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc Bool.22; - jump List.700 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; + jump List.708 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; -procedure List.18 (List.175, List.176, List.177): - let List.698 : U64 = 0i64; - let List.699 : U64 = CallByName List.6 List.175; - let List.697 : List [C List *self] = CallByName List.103 List.175 List.176 List.177 List.698 List.699; - ret List.697; +procedure List.18 (List.176, List.177, List.178): + let List.706 : U64 = 0i64; + let List.707 : U64 = CallByName List.6 List.176; + let List.705 : List [C List *self] = CallByName List.104 List.176 List.177 List.178 List.706 List.707; + ret List.705; -procedure List.296 (List.297, List.298, List.294): - let List.711 : [C List *self] = CallByName Test.2 List.298; - let List.710 : List [C List *self] = CallByName List.71 List.297 List.711; - ret List.710; +procedure List.297 (List.298, List.299, List.295): + let List.719 : [C List *self] = CallByName Test.2 List.299; + let List.718 : List [C List *self] = CallByName List.71 List.298 List.719; + ret List.718; -procedure List.5 (List.293, List.294): - let List.295 : U64 = CallByName List.6 List.293; - let List.695 : List [C List *self] = CallByName List.68 List.295; - let List.694 : List [C List *self] = CallByName List.18 List.293 List.695 List.294; - ret List.694; +procedure List.5 (List.294, List.295): + let List.296 : U64 = CallByName List.6 List.294; + let List.703 : List [C List *self] = CallByName List.68 List.296; + let List.702 : List [C List *self] = CallByName List.18 List.294 List.703 List.295; + ret List.702; procedure List.6 (#Attr.2): - let List.708 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.708; + let List.716 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.716; procedure List.66 (#Attr.2, #Attr.3): - let List.707 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.707; + let List.715 : [C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.715; procedure List.68 (#Attr.2): - let List.713 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; - ret List.713; + let List.721 : List [C List *self] = lowlevel ListWithCapacity #Attr.2; + ret List.721; procedure List.71 (#Attr.2, #Attr.3): - let List.712 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.712; + let List.720 : List [C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.720; procedure Num.22 (#Attr.2, #Attr.3): let Num.290 : 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 b4d9885251..02ebc98f84 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.123, List.124): - let List.716 : U64 = CallByName List.6 List.123; - let List.713 : Int1 = CallByName Num.22 List.124 List.716; - if List.713 then - let List.715 : I64 = CallByName List.66 List.123 List.124; - let List.714 : [C {}, C I64] = TagId(1) List.715; - ret List.714; +procedure List.2 (List.124, List.125): + let List.724 : U64 = CallByName List.6 List.124; + let List.721 : Int1 = CallByName Num.22 List.125 List.724; + if List.721 then + let List.723 : I64 = CallByName List.66 List.124 List.125; + let List.722 : [C {}, C I64] = TagId(1) List.723; + ret List.722; else - let List.712 : {} = Struct {}; - let List.711 : [C {}, C I64] = TagId(0) List.712; - ret List.711; + let List.720 : {} = Struct {}; + let List.719 : [C {}, C I64] = TagId(0) List.720; + ret List.719; -procedure List.3 (List.131, List.132, List.133): - let List.703 : {List I64, I64} = CallByName List.64 List.131 List.132 List.133; - let List.702 : List I64 = StructAtIndex 0 List.703; - ret List.702; +procedure List.3 (List.132, List.133, List.134): + let List.711 : {List I64, I64} = CallByName List.64 List.132 List.133 List.134; + let List.710 : List I64 = StructAtIndex 0 List.711; + ret List.710; procedure List.6 (#Attr.2): - let List.701 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.701; - -procedure List.64 (List.128, List.129, List.130): - let List.700 : U64 = CallByName List.6 List.128; - let List.697 : Int1 = CallByName Num.22 List.129 List.700; - if List.697 then - let List.698 : {List I64, I64} = CallByName List.67 List.128 List.129 List.130; - ret List.698; - else - let List.696 : {List I64, I64} = Struct {List.128, List.130}; - ret List.696; - -procedure List.66 (#Attr.2, #Attr.3): - let List.709 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + let List.709 : U64 = lowlevel ListLenU64 #Attr.2; ret List.709; +procedure List.64 (List.129, List.130, List.131): + let List.708 : U64 = CallByName List.6 List.129; + let List.705 : Int1 = CallByName Num.22 List.130 List.708; + if List.705 then + let List.706 : {List I64, I64} = CallByName List.67 List.129 List.130 List.131; + ret List.706; + else + let List.704 : {List I64, I64} = Struct {List.129, List.131}; + ret List.704; + +procedure List.66 (#Attr.2, #Attr.3): + let List.717 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.717; + procedure List.67 (#Attr.2, #Attr.3, #Attr.4): - let List.699 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; - ret List.699; + let List.707 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4; + ret List.707; procedure Num.22 (#Attr.2, #Attr.3): let Num.291 : 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 be48ff974a..a4c0552f8c 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.103 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : Str = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.66 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : Str = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.66 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.9; - jump List.697 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13; + jump List.705 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13; procedure List.13 (#Attr.2, #Attr.3): - let List.720 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.720; + let List.728 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.728; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.4 (List.139, List.140): - let List.716 : U64 = 1i64; - let List.715 : List U8 = CallByName List.70 List.139 List.716; - let List.714 : List U8 = CallByName List.71 List.715 List.140; - ret List.714; +procedure List.4 (List.140, List.141): + let List.724 : U64 = 1i64; + let List.723 : List U8 = CallByName List.70 List.140 List.724; + let List.722 : List U8 = CallByName List.71 List.723 List.141; + ret List.722; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.70 (#Attr.2, #Attr.3): - let List.710 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.710; + let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.718; procedure List.71 (#Attr.2, #Attr.3): - let List.708 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.708; + let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.716; procedure List.8 (#Attr.2, #Attr.3): - let List.718 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.718; + let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.726; procedure Num.127 (#Attr.2): let Num.290 : 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 415aab4d1d..6dc2000ff8 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.103 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48): - joinpoint List.724 List.178 List.179 List.180 List.181 List.182: - let List.726 : Int1 = CallByName Num.22 List.181 List.182; - if List.726 then - let List.730 : Str = CallByName List.66 List.178 List.181; - inc List.730; - let List.183 : List U8 = CallByName Test.66 List.179 List.730 List.180; - let List.729 : U64 = 1i64; - let List.728 : U64 = CallByName Num.51 List.181 List.729; - jump List.724 List.178 List.183 List.180 List.728 List.182; +procedure List.104 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48): + joinpoint List.705 List.179 List.180 List.181 List.182 List.183: + let List.707 : Int1 = CallByName Num.22 List.182 List.183; + if List.707 then + let List.711 : [C {}, C {}, C Str] = CallByName List.66 List.179 List.182; + inc List.711; + let List.184 : List U8 = CallByName Test.66 List.180 List.711 List.181; + let List.710 : U64 = 1i64; + let List.709 : U64 = CallByName Num.51 List.182 List.710; + jump List.705 List.179 List.184 List.181 List.709 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.44; - jump List.724 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; + jump List.705 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48; -procedure List.103 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): - joinpoint List.697 List.178 List.179 List.180 List.181 List.182: - let List.699 : Int1 = CallByName Num.22 List.181 List.182; - if List.699 then - let List.703 : [C {}, C {}, C Str] = CallByName List.66 List.178 List.181; - inc List.703; - let List.183 : List U8 = CallByName Test.66 List.179 List.703 List.180; - let List.702 : U64 = 1i64; - let List.701 : U64 = CallByName Num.51 List.181 List.702; - jump List.697 List.178 List.183 List.180 List.701 List.182; +procedure List.104 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53): + joinpoint List.732 List.179 List.180 List.181 List.182 List.183: + let List.734 : Int1 = CallByName Num.22 List.182 List.183; + if List.734 then + let List.738 : Str = CallByName List.66 List.179 List.182; + inc List.738; + let List.184 : List U8 = CallByName Test.66 List.180 List.738 List.181; + let List.737 : U64 = 1i64; + let List.736 : U64 = CallByName Num.51 List.182 List.737; + jump List.732 List.179 List.184 List.181 List.736 List.183; else - dec List.178; - ret List.179; + dec List.179; + ret List.180; in inc #Derived_gen.49; - jump List.697 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; + jump List.732 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53; procedure List.13 (#Attr.2, #Attr.3): - let List.720 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.720; + let List.728 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.728; procedure List.13 (#Attr.2, #Attr.3): - let List.748 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; - ret List.748; + let List.756 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3; + ret List.756; -procedure List.18 (List.175, List.176, List.177): - let List.695 : U64 = 0i64; - let List.696 : U64 = CallByName List.6 List.175; - let List.694 : List U8 = CallByName List.103 List.175 List.176 List.177 List.695 List.696; - ret List.694; +procedure List.18 (List.176, List.177, List.178): + let List.703 : U64 = 0i64; + let List.704 : U64 = CallByName List.6 List.176; + let List.702 : List U8 = CallByName List.104 List.176 List.177 List.178 List.703 List.704; + ret List.702; -procedure List.18 (List.175, List.176, List.177): - let List.722 : U64 = 0i64; - let List.723 : U64 = CallByName List.6 List.175; - let List.721 : List U8 = CallByName List.103 List.175 List.176 List.177 List.722 List.723; - ret List.721; +procedure List.18 (List.176, List.177, List.178): + let List.730 : U64 = 0i64; + let List.731 : U64 = CallByName List.6 List.176; + let List.729 : List U8 = CallByName List.104 List.176 List.177 List.178 List.730 List.731; + ret List.729; -procedure List.4 (List.139, List.140): - let List.743 : U64 = 1i64; - let List.742 : List U8 = CallByName List.70 List.139 List.743; - let List.741 : List U8 = CallByName List.71 List.742 List.140; - ret List.741; +procedure List.4 (List.140, List.141): + let List.751 : U64 = 1i64; + let List.750 : List U8 = CallByName List.70 List.140 List.751; + let List.749 : List U8 = CallByName List.71 List.750 List.141; + ret List.749; procedure List.6 (#Attr.2): - let List.719 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.719; + let List.727 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.727; procedure List.6 (#Attr.2): - let List.746 : U64 = lowlevel ListLenU64 #Attr.2; - ret List.746; + let List.754 : U64 = lowlevel ListLenU64 #Attr.2; + ret List.754; procedure List.66 (#Attr.2, #Attr.3): - let List.704 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.704; + let List.712 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.712; procedure List.66 (#Attr.2, #Attr.3): - let List.731 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.731; + let List.739 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.739; procedure List.70 (#Attr.2, #Attr.3): - let List.737 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; - ret List.737; + let List.745 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3; + ret List.745; procedure List.71 (#Attr.2, #Attr.3): - let List.735 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; - ret List.735; + let List.743 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3; + ret List.743; procedure List.8 (#Attr.2, #Attr.3): - let List.745 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; - ret List.745; + let List.753 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3; + ret List.753; procedure Num.127 (#Attr.2): let Num.294 : 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 bf297d1d16..cdaaf230cb 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.9 (#Attr.2, #Attr.3): let Bool.21 : Int1 = lowlevel Eq #Attr.2 #Attr.3; ret Bool.21; -procedure List.119 (List.582, List.583, List.584): - let List.712 : U64 = 0i64; - let List.713 : U64 = CallByName List.6 List.582; - let List.711 : [C U64, C U64] = CallByName List.80 List.582 List.583 List.584 List.712 List.713; - ret List.711; +procedure List.120 (List.590, List.591, List.592): + let List.720 : U64 = 0i64; + let List.721 : U64 = CallByName List.6 List.590; + let List.719 : [C U64, C U64] = CallByName List.80 List.590 List.591 List.592 List.720 List.721; + ret List.719; -procedure List.26 (List.216, List.217, List.218): - let List.705 : [C U64, C U64] = CallByName List.119 List.216 List.217 List.218; - let List.708 : U8 = 1i64; - let List.709 : U8 = GetTagId List.705; - let List.710 : Int1 = lowlevel Eq List.708 List.709; - if List.710 then - let List.219 : U64 = UnionAtIndex (Id 1) (Index 0) List.705; - ret List.219; - else - let List.220 : U64 = UnionAtIndex (Id 0) (Index 0) List.705; +procedure List.26 (List.217, List.218, List.219): + let List.713 : [C U64, C U64] = CallByName List.120 List.217 List.218 List.219; + let List.716 : U8 = 1i64; + let List.717 : U8 = GetTagId List.713; + let List.718 : Int1 = lowlevel Eq List.716 List.717; + if List.718 then + let List.220 : U64 = UnionAtIndex (Id 1) (Index 0) List.713; ret List.220; + else + let List.221 : U64 = UnionAtIndex (Id 0) (Index 0) List.713; + ret List.221; -procedure List.38 (List.413, List.414): - let List.704 : U64 = CallByName List.6 List.413; - let List.415 : U64 = CallByName Num.77 List.704 List.414; - let List.694 : List U8 = CallByName List.43 List.413 List.415; - ret List.694; +procedure List.38 (List.414, List.415): + let List.712 : U64 = CallByName List.6 List.414; + let List.416 : U64 = CallByName Num.77 List.712 List.415; + let List.702 : List U8 = CallByName List.43 List.414 List.416; + ret List.702; -procedure List.43 (List.411, List.412): - let List.702 : U64 = CallByName List.6 List.411; - let List.701 : U64 = CallByName Num.77 List.702 List.412; - let List.696 : {U64, U64} = Struct {List.412, List.701}; - let List.695 : List U8 = CallByName List.49 List.411 List.696; - ret List.695; - -procedure List.49 (List.489, List.490): - let List.698 : U64 = StructAtIndex 1 List.490; - let List.699 : U64 = StructAtIndex 0 List.490; - let List.697 : List U8 = CallByName List.72 List.489 List.698 List.699; - ret List.697; - -procedure List.6 (#Attr.2): - let List.703 : U64 = lowlevel ListLenU64 #Attr.2; +procedure List.43 (List.412, List.413): + let List.710 : U64 = CallByName List.6 List.412; + let List.709 : U64 = CallByName Num.77 List.710 List.413; + let List.704 : {U64, U64} = Struct {List.413, List.709}; + let List.703 : List U8 = CallByName List.49 List.412 List.704; ret List.703; +procedure List.49 (List.497, List.498): + let List.706 : U64 = StructAtIndex 1 List.498; + let List.707 : U64 = StructAtIndex 0 List.498; + let List.705 : List U8 = CallByName List.72 List.497 List.706 List.707; + ret List.705; + +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.726 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; - ret List.726; + let List.734 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; + ret List.734; procedure List.72 (#Attr.2, #Attr.3, #Attr.4): - let List.700 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; - ret List.700; + let List.708 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4; + ret List.708; procedure List.80 (Bool.22, Bool.23, Bool.24, Bool.25, Bool.26): - joinpoint List.714 List.585 List.586 List.587 List.588 List.589: - let List.716 : Int1 = CallByName Num.22 List.588 List.589; - if List.716 then - let List.725 : U8 = CallByName List.66 List.585 List.588; - let List.717 : [C U64, C U64] = CallByName Test.3 List.586 List.725; - let List.722 : U8 = 1i64; - let List.723 : U8 = GetTagId List.717; - let List.724 : Int1 = lowlevel Eq List.722 List.723; - if List.724 then - let List.590 : U64 = UnionAtIndex (Id 1) (Index 0) List.717; - let List.720 : U64 = 1i64; - let List.719 : U64 = CallByName Num.51 List.588 List.720; - jump List.714 List.585 List.590 List.587 List.719 List.589; + joinpoint List.722 List.593 List.594 List.595 List.596 List.597: + let List.724 : Int1 = CallByName Num.22 List.596 List.597; + if List.724 then + let List.733 : U8 = CallByName List.66 List.593 List.596; + let List.725 : [C U64, C U64] = CallByName Test.3 List.594 List.733; + let List.730 : U8 = 1i64; + let List.731 : U8 = GetTagId List.725; + let List.732 : Int1 = lowlevel Eq List.730 List.731; + if List.732 then + let List.598 : U64 = UnionAtIndex (Id 1) (Index 0) List.725; + let List.728 : U64 = 1i64; + let List.727 : U64 = CallByName Num.51 List.596 List.728; + jump List.722 List.593 List.598 List.595 List.727 List.597; else - dec List.585; - let List.591 : U64 = UnionAtIndex (Id 0) (Index 0) List.717; - let List.721 : [C U64, C U64] = TagId(0) List.591; - ret List.721; + dec List.593; + let List.599 : U64 = UnionAtIndex (Id 0) (Index 0) List.725; + let List.729 : [C U64, C U64] = TagId(0) List.599; + ret List.729; else - dec List.585; - let List.715 : [C U64, C U64] = TagId(1) List.586; - ret List.715; + dec List.593; + let List.723 : [C U64, C U64] = TagId(1) List.594; + ret List.723; in inc Bool.22; - jump List.714 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; + jump List.722 Bool.22 Bool.23 Bool.24 Bool.25 Bool.26; procedure Num.22 (#Attr.2, #Attr.3): let Num.292 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;