mirror of
https://github.com/roc-lang/roc.git
synced 2025-07-24 06:55:15 +00:00
Merge pull request #7213 from roc-lang/list-splitting
Rename List.split to List.splitAt and add List.splitOn and List.splitOnList
This commit is contained in:
commit
7bf3701c9e
71 changed files with 1934 additions and 1730 deletions
|
@ -10,7 +10,7 @@ Next, look towards the bottom of the `compiler/module/src/symbol.rs` file. Insid
|
|||
|
||||
For each of the builtin modules, there is a file in `compiler/test_gen/src/` like `gen_num.rs`, `gen_str.rs` etc. Add new tests for the module you are changing to the appropriate file here. You can look at the existing test cases for examples and inspiration.
|
||||
|
||||
You can run your new tests locally using `cargo test-gen-llvm`. You can add a filter like `cargo test-gen-llvm gen_str` (to only run tests defined in `gen_str.rs`) or `cargo test-gen-llvm gen_str::str_split` (to only run tests defined in `gen_str` whose names start with `str_split`). More details can be found in the README in the `compiler/test_gen` directory.
|
||||
You can run your new tests locally using `cargo test-gen-llvm`. You can add a filter like `cargo test-gen-llvm gen_str` (to only run tests defined in `gen_str.rs`) or `cargo test-gen-llvm gen_str::str_split_on` (to only run tests defined in `gen_str` whose names start with `str_split`). More details can be found in the README in the `compiler/test_gen` directory.
|
||||
|
||||
## A builtin implemented directly as LLVM
|
||||
|
||||
|
@ -22,8 +22,8 @@ Some of these have `#` inside their name (`first#list`, `#lt` ..). This is a tri
|
|||
|
||||
But we can use these values and some of these are necessary for implementing builtins. For example, `List.get` returns tags, and it is not easy for us to create tags when composing LLVM. What is easier however, is:
|
||||
|
||||
- ..writing `List.#getUnsafe` that has the dangerous signature of `List elem, U64 -> elem` in LLVM
|
||||
- ..writing `List elem, U64 -> Result elem [OutOfBounds]*` in a type safe way that uses `getUnsafe` internally, only after it checks if the `elem` at `U64` index exists.
|
||||
- ..writing `List.#getUnsafe` that has the dangerous signature of `List elem, U64 -> elem` in LLVM
|
||||
- ..writing `List elem, U64 -> Result elem [OutOfBounds]*` in a type safe way that uses `getUnsafe` internally, only after it checks if the `elem` at `U64` index exists.
|
||||
|
||||
### can/src/builtins.rs
|
||||
|
||||
|
@ -123,5 +123,5 @@ But replace `Num.atan`, the return value, and the return type with your new buil
|
|||
|
||||
When implementing a new builtin, it is often easy to copy and paste the implementation for an existing builtin. This can take you quite far since many builtins are very similar, but it also risks forgetting to change one small part of what you copy and pasted and losing a lot of time later on when you cant figure out why things don't work. So, speaking from experience, even if you are copying an existing builtin, try and implement it manually without copying and pasting. Two recent instances of this (as of September 7th, 2020):
|
||||
|
||||
- `List.keepIf` did not work for a long time because in builtins its `LowLevel` was `ListMap`. This was because I copy and pasted the `List.map` implementation in `builtins.rs
|
||||
- `List.walkBackwards` had mysterious memory bugs for a little while because in `unique.rs` its return type was `list_type(flex(b))` instead of `flex(b)` since it was copy and pasted from `List.keepIf`.
|
||||
- `List.keepIf` did not work for a long time because in builtins its `LowLevel` was `ListMap`. This was because I copy and pasted the `List.map` implementation in `builtins.rs
|
||||
- `List.walkBackwards` had mysterious memory bugs for a little while because in `unique.rs` its return type was `list_type(flex(b))` instead of `flex(b)` since it was copy and pasted from `List.keepIf`.
|
||||
|
|
|
@ -185,7 +185,7 @@ comptime {
|
|||
const str = @import("str.zig");
|
||||
comptime {
|
||||
exportStrFn(str.init, "init");
|
||||
exportStrFn(str.strSplit, "str_split");
|
||||
exportStrFn(str.strSplitOn, "str_split_on");
|
||||
exportStrFn(str.countSegments, "count_segments");
|
||||
exportStrFn(str.countUtf8Bytes, "count_utf8_bytes");
|
||||
exportStrFn(str.isEmpty, "is_empty");
|
||||
|
|
|
@ -598,14 +598,14 @@ fn strFromFloatHelp(comptime T: type, float: T) RocStr {
|
|||
return RocStr.init(&buf, result.len);
|
||||
}
|
||||
|
||||
// Str.split
|
||||
pub fn strSplit(string: RocStr, delimiter: RocStr) callconv(.C) RocList {
|
||||
// Str.splitOn
|
||||
pub fn strSplitOn(string: RocStr, delimiter: RocStr) callconv(.C) RocList {
|
||||
const segment_count = countSegments(string, delimiter);
|
||||
const list = RocList.allocate(@alignOf(RocStr), segment_count, @sizeOf(RocStr), true);
|
||||
|
||||
if (list.bytes) |bytes| {
|
||||
const strings = @as([*]RocStr, @ptrCast(@alignCast(bytes)));
|
||||
strSplitHelp(strings, string, delimiter);
|
||||
strSplitOnHelp(strings, string, delimiter);
|
||||
}
|
||||
|
||||
return list;
|
||||
|
@ -625,7 +625,7 @@ fn initFromBigStr(slice_bytes: [*]u8, len: usize, alloc_ptr: usize) RocStr {
|
|||
};
|
||||
}
|
||||
|
||||
fn strSplitHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void {
|
||||
fn strSplitOnHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void {
|
||||
if (delimiter.len() == 0) {
|
||||
string.incref(1);
|
||||
array[0] = string;
|
||||
|
@ -650,7 +650,7 @@ fn strSplitHelp(array: [*]RocStr, string: RocStr, delimiter: RocStr) void {
|
|||
}
|
||||
|
||||
test "strSplitHelp: empty delimiter" {
|
||||
// Str.split "abc" "" == ["abc"]
|
||||
// Str.splitOn "abc" "" == ["abc"]
|
||||
const str_arr = "abc";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
||||
|
@ -660,7 +660,7 @@ test "strSplitHelp: empty delimiter" {
|
|||
var array: [1]RocStr = undefined;
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
var expected = [1]RocStr{
|
||||
str,
|
||||
|
@ -684,7 +684,7 @@ test "strSplitHelp: empty delimiter" {
|
|||
}
|
||||
|
||||
test "strSplitHelp: no delimiter" {
|
||||
// Str.split "abc" "!" == ["abc"]
|
||||
// Str.splitOn "abc" "!" == ["abc"]
|
||||
const str_arr = "abc";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
||||
|
@ -694,7 +694,7 @@ test "strSplitHelp: no delimiter" {
|
|||
var array: [1]RocStr = undefined;
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
var expected = [1]RocStr{
|
||||
str,
|
||||
|
@ -731,7 +731,7 @@ test "strSplitHelp: empty start" {
|
|||
};
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
const one = RocStr.init("a", 1);
|
||||
|
||||
|
@ -772,7 +772,7 @@ test "strSplitHelp: empty end" {
|
|||
};
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
const one = RocStr.init("1", 1);
|
||||
const two = RocStr.init("2", 1);
|
||||
|
@ -811,7 +811,7 @@ test "strSplitHelp: string equals delimiter" {
|
|||
};
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str_delimiter, str_delimiter);
|
||||
strSplitOnHelp(array_ptr, str_delimiter, str_delimiter);
|
||||
|
||||
var expected = [2]RocStr{ RocStr.empty(), RocStr.empty() };
|
||||
|
||||
|
@ -846,7 +846,7 @@ test "strSplitHelp: delimiter on sides" {
|
|||
undefined,
|
||||
};
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
const ghi_arr = "ghi";
|
||||
const ghi = RocStr.init(ghi_arr, ghi_arr.len);
|
||||
|
@ -875,7 +875,7 @@ test "strSplitHelp: delimiter on sides" {
|
|||
}
|
||||
|
||||
test "strSplitHelp: three pieces" {
|
||||
// Str.split "a!b!c" "!" == ["a", "b", "c"]
|
||||
// Str.splitOn "a!b!c" "!" == ["a", "b", "c"]
|
||||
const str_arr = "a!b!c";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
||||
|
@ -886,7 +886,7 @@ test "strSplitHelp: three pieces" {
|
|||
var array: [array_len]RocStr = undefined;
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
const a = RocStr.init("a", 1);
|
||||
const b = RocStr.init("b", 1);
|
||||
|
@ -916,7 +916,7 @@ test "strSplitHelp: three pieces" {
|
|||
}
|
||||
|
||||
test "strSplitHelp: overlapping delimiter 1" {
|
||||
// Str.split "aaa" "aa" == ["", "a"]
|
||||
// Str.splitOn "aaa" "aa" == ["", "a"]
|
||||
const str_arr = "aaa";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
||||
|
@ -926,7 +926,7 @@ test "strSplitHelp: overlapping delimiter 1" {
|
|||
var array: [2]RocStr = undefined;
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
var expected = [2]RocStr{
|
||||
RocStr.empty(),
|
||||
|
@ -941,7 +941,7 @@ test "strSplitHelp: overlapping delimiter 1" {
|
|||
}
|
||||
|
||||
test "strSplitHelp: overlapping delimiter 2" {
|
||||
// Str.split "aaa" "aa" == ["", "a"]
|
||||
// Str.splitOn "aaa" "aa" == ["", "a"]
|
||||
const str_arr = "aaaa";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
||||
|
@ -951,7 +951,7 @@ test "strSplitHelp: overlapping delimiter 2" {
|
|||
var array: [3]RocStr = undefined;
|
||||
const array_ptr: [*]RocStr = &array;
|
||||
|
||||
strSplitHelp(array_ptr, str, delimiter);
|
||||
strSplitOnHelp(array_ptr, str, delimiter);
|
||||
|
||||
var expected = [3]RocStr{
|
||||
RocStr.empty(),
|
||||
|
@ -967,7 +967,7 @@ test "strSplitHelp: overlapping delimiter 2" {
|
|||
try expect(array[2].eq(expected[2]));
|
||||
}
|
||||
|
||||
// This is used for `Str.split : Str, Str -> Array Str
|
||||
// This is used for `Str.splitOn : Str, Str -> List Str
|
||||
// It is used to count how many segments the input `_str`
|
||||
// needs to be broken into, so that we can allocate a array
|
||||
// of that size. It always returns at least 1.
|
||||
|
@ -985,7 +985,7 @@ pub fn countSegments(string: RocStr, delimiter: RocStr) callconv(.C) usize {
|
|||
}
|
||||
|
||||
test "countSegments: long delimiter" {
|
||||
// Str.split "str" "delimiter" == ["str"]
|
||||
// Str.splitOn "str" "delimiter" == ["str"]
|
||||
// 1 segment
|
||||
const str_arr = "str";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
@ -1003,7 +1003,7 @@ test "countSegments: long delimiter" {
|
|||
}
|
||||
|
||||
test "countSegments: delimiter at start" {
|
||||
// Str.split "hello there" "hello" == ["", " there"]
|
||||
// Str.splitOn "hello there" "hello" == ["", " there"]
|
||||
// 2 segments
|
||||
const str_arr = "hello there";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
@ -1022,7 +1022,7 @@ test "countSegments: delimiter at start" {
|
|||
}
|
||||
|
||||
test "countSegments: delimiter interspered" {
|
||||
// Str.split "a!b!c" "!" == ["a", "b", "c"]
|
||||
// Str.splitOn "a!b!c" "!" == ["a", "b", "c"]
|
||||
// 3 segments
|
||||
const str_arr = "a!b!c";
|
||||
const str = RocStr.init(str_arr, str_arr.len);
|
||||
|
@ -1041,7 +1041,7 @@ test "countSegments: delimiter interspered" {
|
|||
}
|
||||
|
||||
test "countSegments: string equals delimiter" {
|
||||
// Str.split "/" "/" == ["", ""]
|
||||
// Str.splitOn "/" "/" == ["", ""]
|
||||
// 2 segments
|
||||
const str_delimiter_arr = "/";
|
||||
const str_delimiter = RocStr.init(str_delimiter_arr, str_delimiter_arr.len);
|
||||
|
@ -1056,14 +1056,14 @@ test "countSegments: string equals delimiter" {
|
|||
}
|
||||
|
||||
test "countSegments: overlapping delimiter 1" {
|
||||
// Str.split "aaa" "aa" == ["", "a"]
|
||||
// Str.splitOn "aaa" "aa" == ["", "a"]
|
||||
const segments_count = countSegments(RocStr.init("aaa", 3), RocStr.init("aa", 2));
|
||||
|
||||
try expectEqual(segments_count, 2);
|
||||
}
|
||||
|
||||
test "countSegments: overlapping delimiter 2" {
|
||||
// Str.split "aaa" "aa" == ["", "a"]
|
||||
// Str.splitOn "aaa" "aa" == ["", "a"]
|
||||
const segments_count = countSegments(RocStr.init("aaaa", 4), RocStr.init("aa", 2));
|
||||
|
||||
try expectEqual(segments_count, 3);
|
||||
|
|
|
@ -55,7 +55,9 @@ module [
|
|||
findLastIndex,
|
||||
sublist,
|
||||
intersperse,
|
||||
split,
|
||||
splitAt,
|
||||
splitOn,
|
||||
splitOnList,
|
||||
splitFirst,
|
||||
splitLast,
|
||||
startsWith,
|
||||
|
@ -1028,7 +1030,7 @@ first = \list ->
|
|||
## To remove elements from both the beginning and end of the list,
|
||||
## use `List.sublist`.
|
||||
##
|
||||
## To split the list into two lists, use `List.split`.
|
||||
## To split the list into two lists, use `List.splitAt`.
|
||||
##
|
||||
takeFirst : List elem, U64 -> List elem
|
||||
takeFirst = \list, outputLength ->
|
||||
|
@ -1048,7 +1050,7 @@ takeFirst = \list, outputLength ->
|
|||
## To remove elements from both the beginning and end of the list,
|
||||
## use `List.sublist`.
|
||||
##
|
||||
## To split the list into two lists, use `List.split`.
|
||||
## To split the list into two lists, use `List.splitAt`.
|
||||
##
|
||||
takeLast : List elem, U64 -> List elem
|
||||
takeLast = \list, outputLength ->
|
||||
|
@ -1249,8 +1251,8 @@ endsWith = \list, suffix ->
|
|||
## than the given index, # and the `others` list will be all the others. (This
|
||||
## means if you give an index of 0, the `before` list will be empty and the
|
||||
## `others` list will have the same elements as the original list.)
|
||||
split : List elem, U64 -> { before : List elem, others : List elem }
|
||||
split = \elements, userSplitIndex ->
|
||||
splitAt : List elem, U64 -> { before : List elem, others : List elem }
|
||||
splitAt = \elements, userSplitIndex ->
|
||||
length = List.len elements
|
||||
splitIndex = if length > userSplitIndex then userSplitIndex else length
|
||||
before = List.sublist elements { start: 0, len: splitIndex }
|
||||
|
@ -1258,6 +1260,44 @@ split = \elements, userSplitIndex ->
|
|||
|
||||
{ before, others }
|
||||
|
||||
## Splits the input list on the delimiter element.
|
||||
##
|
||||
## ```roc
|
||||
## List.splitOn [1, 2, 3] 2 == [[1], [3]]
|
||||
## ```
|
||||
splitOn : List a, a -> List (List a) where a implements Eq
|
||||
splitOn = \elements, delimiter ->
|
||||
help = \remaining, chunks, currentChunk ->
|
||||
when remaining is
|
||||
[] -> List.append chunks currentChunk
|
||||
[x, .. as rest] if x == delimiter ->
|
||||
help rest (List.append chunks currentChunk) []
|
||||
|
||||
[x, .. as rest] ->
|
||||
help rest chunks (List.append currentChunk x)
|
||||
help elements [] []
|
||||
|
||||
## Splits the input list on the delimiter list.
|
||||
##
|
||||
## ```roc
|
||||
## List.splitOnList [1, 2, 3] [1, 2] == [[], [3]]
|
||||
## ```
|
||||
splitOnList : List a, List a -> List (List a) where a implements Eq
|
||||
splitOnList = \elements, delimiter ->
|
||||
help = \remaining, chunks, currentChunk ->
|
||||
when remaining is
|
||||
[] -> List.append chunks currentChunk
|
||||
[x, .. as rest] ->
|
||||
if List.startsWith remaining delimiter then
|
||||
help (List.dropFirst remaining (List.len delimiter)) (List.append chunks currentChunk) []
|
||||
else
|
||||
help rest chunks (List.append currentChunk x)
|
||||
|
||||
if delimiter == [] then
|
||||
[elements]
|
||||
else
|
||||
help elements [] []
|
||||
|
||||
## Returns the elements before the first occurrence of a delimiter, as well as the
|
||||
## remaining elements after that occurrence. If the delimiter is not found, returns `Err`.
|
||||
## ```roc
|
||||
|
@ -1307,7 +1347,7 @@ chunksOfHelp = \listRest, chunkSize, chunks ->
|
|||
if List.isEmpty listRest then
|
||||
chunks
|
||||
else
|
||||
{ before, others } = List.split listRest chunkSize
|
||||
{ before, others } = List.splitAt listRest chunkSize
|
||||
chunksOfHelp others chunkSize (List.append chunks before)
|
||||
|
||||
## Like [List.map], except the transformation function returns a [Result].
|
||||
|
|
|
@ -253,7 +253,7 @@
|
|||
##
|
||||
## The way Roc organizes the `Str` module and supporting packages is designed to help answer this question. Every situation is different, but the following rules of thumb are typical:
|
||||
##
|
||||
## * Most often, using `Str` values along with helper functions like [`split`](https://www.roc-lang.org/builtins/Str#split), [`joinWith`](https://www.roc-lang.org/builtins/Str#joinWith), and so on, is the best option.
|
||||
## * Most often, using `Str` values along with helper functions like [`splitOn`](https://www.roc-lang.org/builtins/Str#splitOn), [`joinWith`](https://www.roc-lang.org/builtins/Str#joinWith), and so on, is the best option.
|
||||
## * If you are specifically implementing a parser, working in UTF-8 bytes is usually the best option. So functions like [`walkUtf8`](https://www.roc-lang.org/builtins/Str#walkUtf8), [toUtf8](https://www.roc-lang.org/builtins/Str#toUtf8), and so on. (Note that single-quote literals produce number literals, so ASCII-range literals like `'a'` gives an integer literal that works with a UTF-8 `U8`.)
|
||||
## * If you are implementing a Unicode library like [roc-lang/unicode](https://github.com/roc-lang/unicode), working in terms of code points will be unavoidable. Aside from basic readability considerations like `\u(...)` in string literals, if you have the option to avoid working in terms of code points, it is almost always correct to avoid them.
|
||||
## * If it seems like a good idea to split a string into "characters" (graphemes), you should definitely stop and reconsider whether this is really the best design. Almost always, doing this is some combination of more error-prone or slower (usually both) than doing something else that does not require taking graphemes into consideration.
|
||||
|
@ -294,7 +294,7 @@
|
|||
## Try putting this into `roc repl`:
|
||||
##
|
||||
## ```
|
||||
## » "foo/bar/baz" |> Str.split "/"
|
||||
## » "foo/bar/baz" |> Str.splitOn "/"
|
||||
##
|
||||
## ["foo", "bar", "baz"] : List Str
|
||||
## ```
|
||||
|
@ -304,7 +304,7 @@
|
|||
## Now let's suppose they were long enough that this optimization no longer applied:
|
||||
##
|
||||
## ```
|
||||
## » "a much, much, much, much/longer/string compared to the last one!" |> Str.split "/"
|
||||
## » "a much, much, much, much/longer/string compared to the last one!" |> Str.splitOn "/"
|
||||
##
|
||||
## ["a much, much, much, much", "longer", "string compared to the last one!"] : List Str
|
||||
## ```
|
||||
|
@ -332,7 +332,7 @@ module [
|
|||
concat,
|
||||
isEmpty,
|
||||
joinWith,
|
||||
split,
|
||||
splitOn,
|
||||
repeat,
|
||||
countUtf8Bytes,
|
||||
toUtf8,
|
||||
|
@ -499,10 +499,10 @@ joinWith : List Str, Str -> Str
|
|||
## Passing `""` for the separator is not useful;
|
||||
## it returns the original string wrapped in a [List].
|
||||
## ```roc
|
||||
## expect Str.split "1,2,3" "," == ["1","2","3"]
|
||||
## expect Str.split "1,2,3" "" == ["1,2,3"]
|
||||
## expect Str.splitOn "1,2,3" "," == ["1","2","3"]
|
||||
## expect Str.splitOn "1,2,3" "" == ["1,2,3"]
|
||||
## ```
|
||||
split : Str, Str -> List Str
|
||||
splitOn : Str, Str -> List Str
|
||||
|
||||
## Repeats a string the given number of times.
|
||||
## ```roc
|
||||
|
@ -518,7 +518,7 @@ repeat : Str, U64 -> Str
|
|||
|
||||
## Returns a [List] of the string's [U8] UTF-8 [code units](https://unicode.org/glossary/#code_unit).
|
||||
## (To split the string into a [List] of smaller [Str] values instead of [U8] values,
|
||||
## see [Str.split].)
|
||||
## see [Str.splitOn].)
|
||||
## ```roc
|
||||
## expect Str.toUtf8 "Roc" == [82, 111, 99]
|
||||
## expect Str.toUtf8 "鹏" == [233, 185, 143]
|
||||
|
|
|
@ -343,7 +343,7 @@ pub const STR_INIT: &str = "roc_builtins.str.init";
|
|||
pub const STR_COUNT_SEGMENTS: &str = "roc_builtins.str.count_segments";
|
||||
pub const STR_CONCAT: &str = "roc_builtins.str.concat";
|
||||
pub const STR_JOIN_WITH: &str = "roc_builtins.str.joinWith";
|
||||
pub const STR_SPLIT: &str = "roc_builtins.str.str_split";
|
||||
pub const STR_SPLIT_ON: &str = "roc_builtins.str.str_split_on";
|
||||
pub const STR_COUNT_UTF8_BYTES: &str = "roc_builtins.str.count_utf8_bytes";
|
||||
pub const STR_IS_EMPTY: &str = "roc_builtins.str.is_empty";
|
||||
pub const STR_CAPACITY: &str = "roc_builtins.str.capacity";
|
||||
|
|
|
@ -116,7 +116,7 @@ map_symbol_to_lowlevel_and_arity! {
|
|||
StrIsEmpty; STR_IS_EMPTY; 1,
|
||||
StrStartsWith; STR_STARTS_WITH; 2,
|
||||
StrEndsWith; STR_ENDS_WITH; 2,
|
||||
StrSplit; STR_SPLIT; 2,
|
||||
StrSplitOn; STR_SPLIT_ON; 2,
|
||||
StrCountUtf8Bytes; STR_COUNT_UTF8_BYTES; 1,
|
||||
StrFromUtf8; STR_FROM_UTF8_LOWLEVEL; 1,
|
||||
StrToUtf8; STR_TO_UTF8; 1,
|
||||
|
|
|
@ -1641,9 +1641,9 @@ trait Backend<'a> {
|
|||
arg_layouts,
|
||||
ret_layout,
|
||||
),
|
||||
LowLevel::StrSplit => self.build_fn_call(
|
||||
LowLevel::StrSplitOn => self.build_fn_call(
|
||||
sym,
|
||||
bitcode::STR_SPLIT.to_string(),
|
||||
bitcode::STR_SPLIT_ON.to_string(),
|
||||
args,
|
||||
arg_layouts,
|
||||
ret_layout,
|
||||
|
|
|
@ -471,8 +471,8 @@ pub(crate) fn run_low_level<'a, 'ctx>(
|
|||
bitcode::STR_REPEAT,
|
||||
)
|
||||
}
|
||||
StrSplit => {
|
||||
// Str.split : Str, Str -> List Str
|
||||
StrSplitOn => {
|
||||
// Str.splitOn : Str, Str -> List Str
|
||||
arguments!(string, delimiter);
|
||||
|
||||
call_str_bitcode_fn(
|
||||
|
@ -480,7 +480,7 @@ pub(crate) fn run_low_level<'a, 'ctx>(
|
|||
&[string, delimiter],
|
||||
&[],
|
||||
BitcodeReturns::List,
|
||||
bitcode::STR_SPLIT,
|
||||
bitcode::STR_SPLIT_ON,
|
||||
)
|
||||
}
|
||||
StrIsEmpty => {
|
||||
|
|
|
@ -200,7 +200,7 @@ impl<'a> LowLevelCall<'a> {
|
|||
},
|
||||
StrStartsWith => self.load_args_and_call_zig(backend, bitcode::STR_STARTS_WITH),
|
||||
StrEndsWith => self.load_args_and_call_zig(backend, bitcode::STR_ENDS_WITH),
|
||||
StrSplit => self.load_args_and_call_zig(backend, bitcode::STR_SPLIT),
|
||||
StrSplitOn => self.load_args_and_call_zig(backend, bitcode::STR_SPLIT_ON),
|
||||
StrCountUtf8Bytes => {
|
||||
self.load_args_and_call_zig(backend, bitcode::STR_COUNT_UTF8_BYTES)
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ pub enum LowLevel {
|
|||
StrIsEmpty,
|
||||
StrStartsWith,
|
||||
StrEndsWith,
|
||||
StrSplit,
|
||||
StrSplitOn,
|
||||
StrCountUtf8Bytes,
|
||||
StrFromInt,
|
||||
StrFromUtf8,
|
||||
|
@ -253,7 +253,7 @@ map_symbol_to_lowlevel! {
|
|||
StrIsEmpty <= STR_IS_EMPTY;
|
||||
StrStartsWith <= STR_STARTS_WITH;
|
||||
StrEndsWith <= STR_ENDS_WITH;
|
||||
StrSplit <= STR_SPLIT;
|
||||
StrSplitOn <= STR_SPLIT_ON;
|
||||
StrCountUtf8Bytes <= STR_COUNT_UTF8_BYTES;
|
||||
StrFromUtf8 <= STR_FROM_UTF8_LOWLEVEL;
|
||||
StrToUtf8 <= STR_TO_UTF8;
|
||||
|
|
|
@ -1371,7 +1371,7 @@ define_builtins! {
|
|||
2 STR_APPEND: "#append" // unused
|
||||
3 STR_CONCAT: "concat"
|
||||
4 STR_JOIN_WITH: "joinWith"
|
||||
5 STR_SPLIT: "split"
|
||||
5 STR_SPLIT_ON: "splitOn"
|
||||
6 STR_WITH_PREFIX: "withPrefix"
|
||||
7 STR_STARTS_WITH: "startsWith"
|
||||
8 STR_ENDS_WITH: "endsWith"
|
||||
|
@ -1471,7 +1471,7 @@ define_builtins! {
|
|||
49 LIST_SUBLIST: "sublist"
|
||||
50 LIST_INTERSPERSE: "intersperse"
|
||||
51 LIST_INTERSPERSE_CLOS: "#intersperseClos"
|
||||
52 LIST_SPLIT: "split"
|
||||
52 LIST_SPLIT_AT: "splitAt"
|
||||
53 LIST_SPLIT_FIRST: "splitFirst"
|
||||
54 LIST_SPLIT_LAST: "splitLast"
|
||||
55 LIST_SPLIT_CLOS: "#splitClos"
|
||||
|
@ -1511,6 +1511,9 @@ define_builtins! {
|
|||
89 LIST_CONCAT_UTF8: "concatUtf8"
|
||||
90 LIST_FOR_EACH_FX: "forEach!"
|
||||
91 LIST_FOR_EACH_TRY_FX: "forEachTry!"
|
||||
92 LIST_WALK_FX: "walk!"
|
||||
93 LIST_SPLIT_ON: "splitOn"
|
||||
94 LIST_SPLIT_ON_LIST: "splitOnList"
|
||||
}
|
||||
7 RESULT: "Result" => {
|
||||
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias
|
||||
|
|
|
@ -1563,7 +1563,7 @@ fn low_level_no_rc(lowlevel: &LowLevel) -> RC {
|
|||
StrTrim => RC::Rc,
|
||||
StrTrimStart => RC::Rc,
|
||||
StrTrimEnd => RC::Rc,
|
||||
StrSplit => RC::NoRc,
|
||||
StrSplitOn => RC::NoRc,
|
||||
StrToNum => RC::NoRc,
|
||||
ListPrepend => RC::Rc,
|
||||
StrJoinWith => RC::NoRc,
|
||||
|
|
|
@ -1274,7 +1274,7 @@ pub(crate) fn lowlevel_borrow_signature(op: LowLevel) -> &'static [Ownership] {
|
|||
StrTrim => &[OWNED],
|
||||
StrTrimStart => &[OWNED],
|
||||
StrTrimEnd => &[OWNED],
|
||||
StrSplit => &[BORROWED, BORROWED],
|
||||
StrSplitOn => &[BORROWED, BORROWED],
|
||||
StrToNum => &[BORROWED],
|
||||
ListPrepend => &[OWNED, OWNED],
|
||||
StrJoinWith => &[BORROWED, BORROWED],
|
||||
|
|
|
@ -3863,7 +3863,7 @@ mod solve_expr {
|
|||
#[test]
|
||||
fn list_split() {
|
||||
infer_eq_without_problem(
|
||||
indoc!("List.split"),
|
||||
indoc!("List.splitAt"),
|
||||
"List elem, U64 -> { before : List elem, others : List elem }",
|
||||
);
|
||||
}
|
||||
|
|
|
@ -371,10 +371,10 @@ fn list_map_try_err() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))]
|
||||
fn list_split() {
|
||||
fn list_split_at() {
|
||||
assert_evals_to!(
|
||||
r"
|
||||
list = List.split [1, 2, 3] 0
|
||||
list = List.splitAt [1, 2, 3] 0
|
||||
list.before
|
||||
",
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
|
@ -382,7 +382,7 @@ fn list_split() {
|
|||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
list = List.split [1, 2, 3] 0
|
||||
list = List.splitAt [1, 2, 3] 0
|
||||
list.others
|
||||
",
|
||||
RocList::from_slice(&[1, 2, 3]),
|
||||
|
@ -390,13 +390,13 @@ fn list_split() {
|
|||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.split [1, 2, 3] 1
|
||||
List.splitAt [1, 2, 3] 1
|
||||
",
|
||||
(RocList::from_slice(&[1]), RocList::from_slice(&[2, 3])),
|
||||
(RocList<i64>, RocList<i64>,)
|
||||
);
|
||||
assert_evals_to!(
|
||||
"List.split [1, 2, 3] 3",
|
||||
"List.splitAt [1, 2, 3] 3",
|
||||
(
|
||||
RocList::from_slice(&[1, 2, 3]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
|
@ -404,7 +404,7 @@ fn list_split() {
|
|||
(RocList<i64>, RocList<i64>,)
|
||||
);
|
||||
assert_evals_to!(
|
||||
"List.split [1, 2, 3] 4",
|
||||
"List.splitAt [1, 2, 3] 4",
|
||||
(
|
||||
RocList::from_slice(&[1, 2, 3]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
|
@ -412,7 +412,7 @@ fn list_split() {
|
|||
(RocList<i64>, RocList<i64>,)
|
||||
);
|
||||
assert_evals_to!(
|
||||
"List.split [] 1",
|
||||
"List.splitAt [] 1",
|
||||
(
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
|
@ -421,6 +421,133 @@ fn list_split() {
|
|||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))]
|
||||
fn list_split_on() {
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [] 1
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[])]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [1] 1
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [1, 2, 3] 47
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[1, 2, 3])]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [1, 2, 3, 4, 5] 3
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[1, 2]),
|
||||
RocList::<i64>::from_slice(&[4, 5]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [1, 0, 1, 0, 1] 1
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
RocList::<i64>::from_slice(&[0]),
|
||||
RocList::<i64>::from_slice(&[0]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOn [1, 0, 1, 0, 1] 0
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[1]),
|
||||
RocList::<i64>::from_slice(&[1]),
|
||||
RocList::<i64>::from_slice(&[1]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))]
|
||||
fn list_split_on_list() {
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [] []
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[])]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [] [1, 2, 3]
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[]),]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [1, 2, 3] []
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[1, 2, 3]),]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [1] [1]
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [1, 2, 3] [47]
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[RocList::<i64>::from_slice(&[1, 2, 3])]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [1, 2, 3, 4, 5] [2, 3]
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[1]),
|
||||
RocList::<i64>::from_slice(&[4, 5]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
assert_evals_to!(
|
||||
r"
|
||||
List.splitOnList [1, 0, 1, 0, 1] [1]
|
||||
",
|
||||
RocList::<RocList<i64>>::from_slice(&[
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
RocList::<i64>::from_slice(&[0]),
|
||||
RocList::<i64>::from_slice(&[0]),
|
||||
RocList::<i64>::from_slice(&[]),
|
||||
]),
|
||||
RocList<RocList<i64>>
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))]
|
||||
fn list_split_first() {
|
||||
|
@ -3172,7 +3299,7 @@ fn list_join_map() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.joinMap ["guava,apple,pear", "bailey,cyrus"] (\s -> Str.split s ",")
|
||||
List.joinMap ["guava,apple,pear", "bailey,cyrus"] (\s -> Str.splitOn s ",")
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[
|
||||
|
@ -3192,7 +3319,7 @@ fn list_join_map_empty() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.joinMap [] (\s -> Str.split s ",")
|
||||
List.joinMap [] (\s -> Str.splitOn s ",")
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[]),
|
||||
|
|
|
@ -220,13 +220,13 @@ fn list_str_take_first() {
|
|||
|
||||
#[test]
|
||||
#[cfg(feature = "gen-wasm")]
|
||||
fn list_str_split() {
|
||||
fn list_str_split_on() {
|
||||
assert_refcounts!(
|
||||
indoc!(
|
||||
r#"
|
||||
s = Str.concat "A long enough string " "to be heap-allocated"
|
||||
list = [s, s, s]
|
||||
List.split list 1
|
||||
List.splitAt list 1
|
||||
"#
|
||||
),
|
||||
(RocList<RocStr>, RocList<RocStr>),
|
||||
|
@ -239,13 +239,13 @@ fn list_str_split() {
|
|||
|
||||
#[test]
|
||||
#[cfg(feature = "gen-wasm")]
|
||||
fn list_str_split_zero() {
|
||||
fn list_str_split_on_zero() {
|
||||
assert_refcounts!(
|
||||
indoc!(
|
||||
r#"
|
||||
s = Str.concat "A long enough string " "to be heap-allocated"
|
||||
list = [s, s, s]
|
||||
List.split list 0
|
||||
List.splitAt list 0
|
||||
"#
|
||||
),
|
||||
(RocList<RocStr>, RocList<RocStr>),
|
||||
|
|
|
@ -51,11 +51,11 @@ fn string_neq() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_empty_delimiter() {
|
||||
fn str_split_on_empty_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.len (Str.split "hello" "")
|
||||
List.len (Str.splitOn "hello" "")
|
||||
"#
|
||||
),
|
||||
1,
|
||||
|
@ -65,7 +65,7 @@ fn str_split_empty_delimiter() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
when List.first (Str.split "JJJ" "") is
|
||||
when List.first (Str.splitOn "JJJ" "") is
|
||||
Ok str ->
|
||||
Str.countUtf8Bytes str
|
||||
|
||||
|
@ -81,11 +81,11 @@ fn str_split_empty_delimiter() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_bigger_delimiter_small_str() {
|
||||
fn str_split_on_bigger_delimiter_small_str() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.len (Str.split "hello" "JJJJ there")
|
||||
List.len (Str.splitOn "hello" "JJJJ there")
|
||||
"#
|
||||
),
|
||||
1,
|
||||
|
@ -95,7 +95,7 @@ fn str_split_bigger_delimiter_small_str() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
when List.first (Str.split "JJJ" "JJJJ there") is
|
||||
when List.first (Str.splitOn "JJJ" "JJJJ there") is
|
||||
Ok str ->
|
||||
Str.countUtf8Bytes str
|
||||
|
||||
|
@ -111,11 +111,11 @@ fn str_split_bigger_delimiter_small_str() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_str_concat_repeated() {
|
||||
fn str_split_on_str_concat_repeated() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
when List.first (Str.split "JJJJJ" "JJJJ there") is
|
||||
when List.first (Str.splitOn "JJJJJ" "JJJJ there") is
|
||||
Ok str ->
|
||||
str
|
||||
|> Str.concat str
|
||||
|
@ -135,9 +135,9 @@ fn str_split_str_concat_repeated() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_small_str_bigger_delimiter() {
|
||||
fn str_split_on_small_str_bigger_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(r#"Str.split "JJJ" "0123456789abcdefghi""#),
|
||||
indoc!(r#"Str.splitOn "JJJ" "0123456789abcdefghi""#),
|
||||
RocList::from_slice(&[RocStr::from("JJJ")]),
|
||||
RocList<RocStr>
|
||||
);
|
||||
|
@ -145,11 +145,11 @@ fn str_split_small_str_bigger_delimiter() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_big_str_small_delimiter() {
|
||||
fn str_split_on_big_str_small_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "01234567789abcdefghi?01234567789abcdefghi" "?"
|
||||
Str.splitOn "01234567789abcdefghi?01234567789abcdefghi" "?"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[
|
||||
|
@ -162,7 +162,7 @@ fn str_split_big_str_small_delimiter() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch"
|
||||
Str.splitOn "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[
|
||||
|
@ -175,11 +175,11 @@ fn str_split_big_str_small_delimiter() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_small_str_small_delimiter() {
|
||||
fn str_split_on_small_str_small_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "J!J!J" "!"
|
||||
Str.splitOn "J!J!J" "!"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("J"), RocStr::from("J"), RocStr::from("J")]),
|
||||
|
@ -189,11 +189,11 @@ fn str_split_small_str_small_delimiter() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_bigger_delimiter_big_strs() {
|
||||
fn str_split_on_bigger_delimiter_big_strs() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"string to split is shorter"
|
||||
"than the delimiter which happens to be very very long"
|
||||
"#
|
||||
|
@ -205,11 +205,11 @@ fn str_split_bigger_delimiter_big_strs() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_empty_strs() {
|
||||
fn str_split_on_empty_strs() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "" ""
|
||||
Str.splitOn "" ""
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("")]),
|
||||
|
@ -219,11 +219,11 @@ fn str_split_empty_strs() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_minimal_example() {
|
||||
fn str_split_on_minimal_example() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "a," ","
|
||||
Str.splitOn "a," ","
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("a"), RocStr::from("")]),
|
||||
|
@ -233,11 +233,11 @@ fn str_split_minimal_example() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_small_str_big_delimiter() {
|
||||
fn str_split_on_small_str_big_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"1---- ---- ---- ---- ----2---- ---- ---- ---- ----"
|
||||
"---- ---- ---- ---- ----"
|
||||
|> List.len
|
||||
|
@ -250,7 +250,7 @@ fn str_split_small_str_big_delimiter() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"1---- ---- ---- ---- ----2---- ---- ---- ---- ----"
|
||||
"---- ---- ---- ---- ----"
|
||||
"#
|
||||
|
@ -262,11 +262,11 @@ fn str_split_small_str_big_delimiter() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_small_str_20_char_delimiter() {
|
||||
fn str_split_on_small_str_20_char_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"3|-- -- -- -- -- -- |4|-- -- -- -- -- -- |"
|
||||
"|-- -- -- -- -- -- |"
|
||||
"#
|
||||
|
@ -1548,7 +1548,7 @@ fn issue_2811() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_first_one_char() {
|
||||
fn str_split_on_first_one_char() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1564,7 +1564,7 @@ fn str_split_first_one_char() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_first_multiple_chars() {
|
||||
fn str_split_on_first_multiple_chars() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1578,7 +1578,7 @@ fn str_split_first_multiple_chars() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_first_entire_input() {
|
||||
fn str_split_on_first_entire_input() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1592,7 +1592,7 @@ fn str_split_first_entire_input() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_first_not_found() {
|
||||
fn str_split_on_first_not_found() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1606,7 +1606,7 @@ fn str_split_first_not_found() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_last_one_char() {
|
||||
fn str_split_on_last_one_char() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1620,7 +1620,7 @@ fn str_split_last_one_char() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_last_multiple_chars() {
|
||||
fn str_split_on_last_multiple_chars() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1634,7 +1634,7 @@ fn str_split_last_multiple_chars() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_last_entire_input() {
|
||||
fn str_split_on_last_entire_input() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1648,7 +1648,7 @@ fn str_split_last_entire_input() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_last_not_found() {
|
||||
fn str_split_on_last_not_found() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
|
@ -1662,9 +1662,9 @@ fn str_split_last_not_found() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_overlapping_substring_1() {
|
||||
fn str_split_on_overlapping_substring_1() {
|
||||
assert_evals_to!(
|
||||
r#"Str.split "aaa" "aa""#,
|
||||
r#"Str.splitOn "aaa" "aa""#,
|
||||
RocList::from_slice(&[RocStr::from(""), RocStr::from("a")]),
|
||||
RocList<RocStr>
|
||||
);
|
||||
|
@ -1672,9 +1672,9 @@ fn str_split_overlapping_substring_1() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-dev"))]
|
||||
fn str_split_overlapping_substring_2() {
|
||||
fn str_split_on_overlapping_substring_2() {
|
||||
assert_evals_to!(
|
||||
r#"Str.split "aaaa" "aa""#,
|
||||
r#"Str.splitOn "aaaa" "aa""#,
|
||||
RocList::from_slice(&[RocStr::from(""), RocStr::from(""), RocStr::from("")]),
|
||||
RocList<RocStr>
|
||||
);
|
||||
|
|
|
@ -15,11 +15,11 @@ use indoc::indoc;
|
|||
use roc_std::{RocList, RocStr, I128, U128};
|
||||
|
||||
#[test]
|
||||
fn str_split_empty_delimiter() {
|
||||
fn str_split_on_empty_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.len (Str.split "hello" "")
|
||||
List.len (Str.splitOn "hello" "")
|
||||
"#
|
||||
),
|
||||
1,
|
||||
|
@ -28,11 +28,11 @@ fn str_split_empty_delimiter() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_bigger_delimiter_small_str() {
|
||||
fn str_split_on_bigger_delimiter_small_str() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
List.len (Str.split "hello" "JJJJ there")
|
||||
List.len (Str.splitOn "hello" "JJJJ there")
|
||||
"#
|
||||
),
|
||||
1,
|
||||
|
@ -41,11 +41,11 @@ fn str_split_bigger_delimiter_small_str() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_str_concat_repeated() {
|
||||
fn str_split_on_str_concat_repeated() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
when List.first (Str.split "JJJJJ" "JJJJ there") is
|
||||
when List.first (Str.splitOn "JJJJJ" "JJJJ there") is
|
||||
Ok str ->
|
||||
str
|
||||
|> Str.concat str
|
||||
|
@ -64,13 +64,13 @@ fn str_split_str_concat_repeated() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_small_str_bigger_delimiter() {
|
||||
fn str_split_on_small_str_bigger_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
when
|
||||
List.first
|
||||
(Str.split "JJJ" "0123456789abcdefghi")
|
||||
(Str.splitOn "JJJ" "0123456789abcdefghi")
|
||||
is
|
||||
Ok str -> str
|
||||
_ -> ""
|
||||
|
@ -82,11 +82,11 @@ fn str_split_small_str_bigger_delimiter() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_big_str_small_delimiter() {
|
||||
fn str_split_on_big_str_small_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "01234567789abcdefghi?01234567789abcdefghi" "?"
|
||||
Str.splitOn "01234567789abcdefghi?01234567789abcdefghi" "?"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[
|
||||
|
@ -99,7 +99,7 @@ fn str_split_big_str_small_delimiter() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch"
|
||||
Str.splitOn "01234567789abcdefghi 3ch 01234567789abcdefghi" "3ch"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[
|
||||
|
@ -111,11 +111,11 @@ fn str_split_big_str_small_delimiter() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_small_str_small_delimiter() {
|
||||
fn str_split_on_small_str_small_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "J!J!J" "!"
|
||||
Str.splitOn "J!J!J" "!"
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("J"), RocStr::from("J"), RocStr::from("J")]),
|
||||
|
@ -124,11 +124,11 @@ fn str_split_small_str_small_delimiter() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_bigger_delimiter_big_strs() {
|
||||
fn str_split_on_bigger_delimiter_big_strs() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"string to split is shorter"
|
||||
"than the delimiter which happens to be very very long"
|
||||
"#
|
||||
|
@ -139,11 +139,11 @@ fn str_split_bigger_delimiter_big_strs() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_empty_strs() {
|
||||
fn str_split_on_empty_strs() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "" ""
|
||||
Str.splitOn "" ""
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("")]),
|
||||
|
@ -152,11 +152,11 @@ fn str_split_empty_strs() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_minimal_example() {
|
||||
fn str_split_on_minimal_example() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split "a," ","
|
||||
Str.splitOn "a," ","
|
||||
"#
|
||||
),
|
||||
RocList::from_slice(&[RocStr::from("a"), RocStr::from("")]),
|
||||
|
@ -165,11 +165,11 @@ fn str_split_minimal_example() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_small_str_big_delimiter() {
|
||||
fn str_split_on_small_str_big_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"1---- ---- ---- ---- ----2---- ---- ---- ---- ----"
|
||||
"---- ---- ---- ---- ----"
|
||||
|> List.len
|
||||
|
@ -182,7 +182,7 @@ fn str_split_small_str_big_delimiter() {
|
|||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"1---- ---- ---- ---- ----2---- ---- ---- ---- ----"
|
||||
"---- ---- ---- ---- ----"
|
||||
"#
|
||||
|
@ -193,11 +193,11 @@ fn str_split_small_str_big_delimiter() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn str_split_small_str_20_char_delimiter() {
|
||||
fn str_split_on_small_str_20_char_delimiter() {
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
Str.split
|
||||
Str.splitOn
|
||||
"3|-- -- -- -- -- -- |4|-- -- -- -- -- -- |"
|
||||
"|-- -- -- -- -- -- |"
|
||||
"#
|
||||
|
|
|
@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3):
|
|||
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
|
||||
ret Bool.23;
|
||||
|
||||
procedure List.112 (List.541, List.542, List.543):
|
||||
let List.656 : U64 = 0i64;
|
||||
let List.657 : U64 = CallByName List.6 List.541;
|
||||
let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657;
|
||||
ret List.655;
|
||||
procedure List.115 (List.562, List.563, List.564):
|
||||
let List.677 : U64 = 0i64;
|
||||
let List.678 : U64 = CallByName List.6 List.562;
|
||||
let List.676 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.677 List.678;
|
||||
ret List.676;
|
||||
|
||||
procedure List.26 (List.209, List.210, List.211):
|
||||
let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211;
|
||||
let List.652 : U8 = 1i64;
|
||||
let List.653 : U8 = GetTagId List.649;
|
||||
let List.654 : Int1 = lowlevel Eq List.652 List.653;
|
||||
if List.654 then
|
||||
let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649;
|
||||
ret List.212;
|
||||
procedure List.26 (List.212, List.213, List.214):
|
||||
let List.670 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214;
|
||||
let List.673 : U8 = 1i64;
|
||||
let List.674 : U8 = GetTagId List.670;
|
||||
let List.675 : Int1 = lowlevel Eq List.673 List.674;
|
||||
if List.675 then
|
||||
let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.670;
|
||||
ret List.215;
|
||||
else
|
||||
let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649;
|
||||
ret List.213;
|
||||
let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670;
|
||||
ret List.216;
|
||||
|
||||
procedure List.38 (List.397, List.398):
|
||||
let List.648 : U64 = CallByName List.6 List.397;
|
||||
let List.399 : U64 = CallByName Num.77 List.648 List.398;
|
||||
let List.638 : List U8 = CallByName List.43 List.397 List.399;
|
||||
ret List.638;
|
||||
procedure List.38 (List.400, List.401):
|
||||
let List.669 : U64 = CallByName List.6 List.400;
|
||||
let List.402 : U64 = CallByName Num.77 List.669 List.401;
|
||||
let List.659 : List U8 = CallByName List.43 List.400 List.402;
|
||||
ret List.659;
|
||||
|
||||
procedure List.43 (List.395, List.396):
|
||||
let List.646 : U64 = CallByName List.6 List.395;
|
||||
let List.645 : U64 = CallByName Num.77 List.646 List.396;
|
||||
let List.640 : {U64, U64} = Struct {List.396, List.645};
|
||||
let List.639 : List U8 = CallByName List.49 List.395 List.640;
|
||||
ret List.639;
|
||||
procedure List.43 (List.398, List.399):
|
||||
let List.667 : U64 = CallByName List.6 List.398;
|
||||
let List.666 : U64 = CallByName Num.77 List.667 List.399;
|
||||
let List.661 : {U64, U64} = Struct {List.399, List.666};
|
||||
let List.660 : List U8 = CallByName List.49 List.398 List.661;
|
||||
ret List.660;
|
||||
|
||||
procedure List.49 (List.473, List.474):
|
||||
let List.642 : U64 = StructAtIndex 1 List.474;
|
||||
let List.643 : U64 = StructAtIndex 0 List.474;
|
||||
let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643;
|
||||
ret List.641;
|
||||
procedure List.49 (List.476, List.477):
|
||||
let List.663 : U64 = StructAtIndex 1 List.477;
|
||||
let List.664 : U64 = StructAtIndex 0 List.477;
|
||||
let List.662 : List U8 = CallByName List.72 List.476 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.647 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.647;
|
||||
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.668;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.670;
|
||||
let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.691;
|
||||
|
||||
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.644;
|
||||
let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.665;
|
||||
|
||||
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.658 List.544 List.545 List.546 List.547 List.548:
|
||||
let List.660 : Int1 = CallByName Num.22 List.547 List.548;
|
||||
if List.660 then
|
||||
let List.669 : U8 = CallByName List.66 List.544 List.547;
|
||||
let List.661 : [C U64, C U64] = CallByName Test.4 List.545 List.669;
|
||||
let List.666 : U8 = 1i64;
|
||||
let List.667 : U8 = GetTagId List.661;
|
||||
let List.668 : Int1 = lowlevel Eq List.666 List.667;
|
||||
if List.668 then
|
||||
let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661;
|
||||
let List.664 : U64 = 1i64;
|
||||
let List.663 : U64 = CallByName Num.51 List.547 List.664;
|
||||
jump List.658 List.544 List.549 List.546 List.663 List.548;
|
||||
joinpoint List.679 List.565 List.566 List.567 List.568 List.569:
|
||||
let List.681 : Int1 = CallByName Num.22 List.568 List.569;
|
||||
if List.681 then
|
||||
let List.690 : U8 = CallByName List.66 List.565 List.568;
|
||||
let List.682 : [C U64, C U64] = CallByName Test.4 List.566 List.690;
|
||||
let List.687 : U8 = 1i64;
|
||||
let List.688 : U8 = GetTagId List.682;
|
||||
let List.689 : Int1 = lowlevel Eq List.687 List.688;
|
||||
if List.689 then
|
||||
let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.682;
|
||||
let List.685 : U64 = 1i64;
|
||||
let List.684 : U64 = CallByName Num.51 List.568 List.685;
|
||||
jump List.679 List.565 List.570 List.567 List.684 List.569;
|
||||
else
|
||||
dec List.544;
|
||||
let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661;
|
||||
let List.665 : [C U64, C U64] = TagId(0) List.550;
|
||||
ret List.665;
|
||||
dec List.565;
|
||||
let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.682;
|
||||
let List.686 : [C U64, C U64] = TagId(0) List.571;
|
||||
ret List.686;
|
||||
else
|
||||
dec List.544;
|
||||
let List.659 : [C U64, C U64] = TagId(1) List.545;
|
||||
ret List.659;
|
||||
dec List.565;
|
||||
let List.680 : [C U64, C U64] = TagId(1) List.566;
|
||||
ret List.680;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.642 : U64 = 0i64;
|
||||
let List.643 : U64 = CallByName List.6 List.168;
|
||||
let List.641 : List {} = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||
ret List.641;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.655 : {} = CallByName Test.2 List.282;
|
||||
let List.654 : List {} = CallByName List.71 List.281 List.655;
|
||||
ret List.654;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.639 : List {} = CallByName List.68 List.279;
|
||||
let List.638 : List {} = CallByName List.18 List.277 List.639 List.278;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.652;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.657 : List {} = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.657;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.656 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.656;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.646 then
|
||||
let List.650 : [] = CallByName List.66 List.171 List.174;
|
||||
let List.176 : List {} = CallByName List.280 List.172 List.650 List.173;
|
||||
let List.649 : U64 = 1i64;
|
||||
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.665 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.667 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.667 then
|
||||
let List.671 : [] = CallByName List.66 List.174 List.177;
|
||||
let List.179 : List {} = CallByName List.283 List.175 List.671 List.176;
|
||||
let List.670 : U64 = 1i64;
|
||||
let List.669 : U64 = CallByName Num.51 List.177 List.670;
|
||||
jump List.665 List.174 List.179 List.176 List.669 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.663 : U64 = 0i64;
|
||||
let List.664 : U64 = CallByName List.6 List.171;
|
||||
let List.662 : List {} = CallByName List.100 List.171 List.172 List.173 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.676 : {} = CallByName Test.2 List.285;
|
||||
let List.675 : List {} = CallByName List.71 List.284 List.676;
|
||||
ret List.675;
|
||||
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.660 : List {} = CallByName List.68 List.282;
|
||||
let List.659 : List {} = CallByName List.18 List.280 List.660 List.281;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.673 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.673;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.678 : List {} = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.678;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.677 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.677;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.642 : U64 = 0i64;
|
||||
let List.643 : U64 = CallByName List.6 List.168;
|
||||
let List.641 : List [] = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||
ret List.641;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.655 : [] = CallByName Test.2 List.282;
|
||||
let List.654 : List [] = CallByName List.71 List.281 List.655;
|
||||
ret List.654;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.639 : List [] = CallByName List.68 List.279;
|
||||
let List.638 : List [] = CallByName List.18 List.277 List.639 List.278;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.652;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.657 : List [] = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.657;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.656 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.656;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.646 then
|
||||
let List.650 : [] = CallByName List.66 List.171 List.174;
|
||||
let List.176 : List [] = CallByName List.280 List.172 List.650 List.173;
|
||||
let List.649 : U64 = 1i64;
|
||||
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.665 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.667 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.667 then
|
||||
let List.671 : [] = CallByName List.66 List.174 List.177;
|
||||
let List.179 : List [] = CallByName List.283 List.175 List.671 List.176;
|
||||
let List.670 : U64 = 1i64;
|
||||
let List.669 : U64 = CallByName Num.51 List.177 List.670;
|
||||
jump List.665 List.174 List.179 List.176 List.669 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.665 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.663 : U64 = 0i64;
|
||||
let List.664 : U64 = CallByName List.6 List.171;
|
||||
let List.662 : List [] = CallByName List.100 List.171 List.172 List.173 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.676 : [] = CallByName Test.2 List.285;
|
||||
let List.675 : List [] = CallByName List.71 List.284 List.676;
|
||||
ret List.675;
|
||||
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.660 : List [] = CallByName List.68 List.282;
|
||||
let List.659 : List [] = CallByName List.18 List.280 List.660 List.281;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.673 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.673;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.672 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.678 : List [] = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.678;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.677 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.677;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : [<r>C {}, C *self {{}, []}] = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : [] = CallByName List.66 List.171 List.174;
|
||||
let List.176 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : [] = CallByName List.66 List.174 List.177;
|
||||
let List.179 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.13;
|
||||
jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||
jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : [<r>C {}, C *self {{}, []}] = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -2,92 +2,92 @@ procedure Bool.1 ():
|
|||
let Bool.24 : Int1 = false;
|
||||
ret Bool.24;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.658 : U64 = 0i64;
|
||||
let List.659 : U64 = CallByName List.6 List.168;
|
||||
let List.657 : List Str = CallByName List.97 List.168 List.169 List.170 List.658 List.659;
|
||||
ret List.657;
|
||||
|
||||
procedure List.2 (List.116, List.117):
|
||||
let List.652 : U64 = CallByName List.6 List.116;
|
||||
let List.648 : Int1 = CallByName Num.22 List.117 List.652;
|
||||
if List.648 then
|
||||
let List.650 : Str = CallByName List.66 List.116 List.117;
|
||||
inc List.650;
|
||||
let List.649 : [C {}, C Str] = TagId(1) List.650;
|
||||
ret List.649;
|
||||
else
|
||||
let List.647 : {} = Struct {};
|
||||
let List.646 : [C {}, C Str] = TagId(0) List.647;
|
||||
ret List.646;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.671 : Str = CallByName Test.10 List.282;
|
||||
let List.670 : List Str = CallByName List.71 List.281 List.671;
|
||||
ret List.670;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.655 : List Str = CallByName List.68 List.279;
|
||||
let List.654 : List Str = CallByName List.18 List.277 List.655 List.278;
|
||||
ret List.654;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.653;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.668;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.667 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.667;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.673 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.673;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.672 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.9 (List.388):
|
||||
let List.645 : U64 = 0i64;
|
||||
let List.638 : [C {}, C Str] = CallByName List.2 List.388 List.645;
|
||||
let List.642 : U8 = 1i64;
|
||||
let List.643 : U8 = GetTagId List.638;
|
||||
let List.644 : Int1 = lowlevel Eq List.642 List.643;
|
||||
if List.644 then
|
||||
let List.389 : Str = UnionAtIndex (Id 1) (Index 0) List.638;
|
||||
let List.639 : [C {}, C Str] = TagId(1) List.389;
|
||||
ret List.639;
|
||||
else
|
||||
dec List.638;
|
||||
let List.641 : {} = Struct {};
|
||||
let List.640 : [C {}, C Str] = TagId(0) List.641;
|
||||
ret List.640;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.660 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.662 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.662 then
|
||||
let List.666 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = CallByName List.66 List.171 List.174;
|
||||
inc List.666;
|
||||
let List.176 : List Str = CallByName List.280 List.172 List.666 List.173;
|
||||
let List.665 : U64 = 1i64;
|
||||
let List.664 : U64 = CallByName Num.51 List.174 List.665;
|
||||
jump List.660 List.171 List.176 List.173 List.664 List.175;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.681 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.683 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.683 then
|
||||
let List.687 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = CallByName List.66 List.174 List.177;
|
||||
inc List.687;
|
||||
let List.179 : List Str = CallByName List.283 List.175 List.687 List.176;
|
||||
let List.686 : U64 = 1i64;
|
||||
let List.685 : U64 = CallByName Num.51 List.177 List.686;
|
||||
jump List.681 List.174 List.179 List.176 List.685 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.660 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.679 : U64 = 0i64;
|
||||
let List.680 : U64 = CallByName List.6 List.171;
|
||||
let List.678 : List Str = CallByName List.100 List.171 List.172 List.173 List.679 List.680;
|
||||
ret List.678;
|
||||
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.673 : U64 = CallByName List.6 List.119;
|
||||
let List.669 : Int1 = CallByName Num.22 List.120 List.673;
|
||||
if List.669 then
|
||||
let List.671 : Str = CallByName List.66 List.119 List.120;
|
||||
inc List.671;
|
||||
let List.670 : [C {}, C Str] = TagId(1) List.671;
|
||||
ret List.670;
|
||||
else
|
||||
let List.668 : {} = Struct {};
|
||||
let List.667 : [C {}, C Str] = TagId(0) List.668;
|
||||
ret List.667;
|
||||
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.692 : Str = CallByName Test.10 List.285;
|
||||
let List.691 : List Str = CallByName List.71 List.284 List.692;
|
||||
ret List.691;
|
||||
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.676 : List Str = CallByName List.68 List.282;
|
||||
let List.675 : List Str = CallByName List.18 List.280 List.676 List.281;
|
||||
ret List.675;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.674 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.674;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.689;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.672 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.688 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.688;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.694 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.694;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.693 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.693;
|
||||
|
||||
procedure List.9 (List.391):
|
||||
let List.666 : U64 = 0i64;
|
||||
let List.659 : [C {}, C Str] = CallByName List.2 List.391 List.666;
|
||||
let List.663 : U8 = 1i64;
|
||||
let List.664 : U8 = GetTagId List.659;
|
||||
let List.665 : Int1 = lowlevel Eq List.663 List.664;
|
||||
if List.665 then
|
||||
let List.392 : Str = UnionAtIndex (Id 1) (Index 0) List.659;
|
||||
let List.660 : [C {}, C Str] = TagId(1) List.392;
|
||||
ret List.660;
|
||||
else
|
||||
dec List.659;
|
||||
let List.662 : {} = Struct {};
|
||||
let List.661 : [C {}, C Str] = TagId(0) List.662;
|
||||
ret List.661;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
procedure List.6 (#Attr.2):
|
||||
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.638;
|
||||
let List.659 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.659;
|
||||
|
||||
procedure Test.1 (Test.5):
|
||||
let Test.2 : I64 = 41i64;
|
||||
|
|
|
@ -2,35 +2,35 @@ procedure Bool.2 ():
|
|||
let Bool.23 : Int1 = true;
|
||||
ret Bool.23;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Int1 = CallByName List.66 List.174 List.177;
|
||||
let List.179 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Int1 = CallByName List.66 List.171 List.174;
|
||||
let List.176 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.7;
|
||||
jump List.641 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
||||
let List.669 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
@ -47,7 +47,7 @@ procedure Str.3 (#Attr.2, #Attr.3):
|
|||
procedure Test.1 (Test.5):
|
||||
ret Test.5;
|
||||
|
||||
procedure Test.11 (#Derived_gen.3, #Derived_gen.4):
|
||||
procedure Test.11 (#Derived_gen.8, #Derived_gen.9):
|
||||
joinpoint Test.27 Test.12 #Attr.12:
|
||||
let Test.34 : Int1 = UnionAtIndex (Id 2) (Index 1) #Attr.12;
|
||||
let Test.33 : [<rnw><null>, C *self Int1, C *self Int1] = UnionAtIndex (Id 2) (Index 0) #Attr.12;
|
||||
|
@ -87,7 +87,7 @@ procedure Test.11 (#Derived_gen.3, #Derived_gen.4):
|
|||
decref #Attr.12;
|
||||
jump #Derived_gen.12;
|
||||
in
|
||||
jump Test.27 #Derived_gen.3 #Derived_gen.4;
|
||||
jump Test.27 #Derived_gen.8 #Derived_gen.9;
|
||||
|
||||
procedure Test.2 (Test.13):
|
||||
ret Test.13;
|
||||
|
|
4
crates/compiler/test_mono/generated/dict.txt
generated
4
crates/compiler/test_mono/generated/dict.txt
generated
|
@ -26,8 +26,8 @@ procedure Dict.52 ():
|
|||
ret Dict.743;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.638;
|
||||
let List.659 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.659;
|
||||
|
||||
procedure Num.75 (#Attr.2, #Attr.3):
|
||||
let Num.281 : U8 = lowlevel NumSubWrap #Attr.2 #Attr.3;
|
||||
|
|
|
@ -2,25 +2,25 @@ procedure Bool.1 ():
|
|||
let Bool.23 : Int1 = false;
|
||||
ret Bool.23;
|
||||
|
||||
procedure List.2 (List.116, List.117):
|
||||
let List.644 : U64 = CallByName List.6 List.116;
|
||||
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||
if List.640 then
|
||||
let List.642 : {} = CallByName List.66 List.116 List.117;
|
||||
let List.641 : [C {}, C {}] = TagId(1) List.642;
|
||||
ret List.641;
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.665 : U64 = CallByName List.6 List.119;
|
||||
let List.661 : Int1 = CallByName Num.22 List.120 List.665;
|
||||
if List.661 then
|
||||
let List.663 : {} = CallByName List.66 List.119 List.120;
|
||||
let List.662 : [C {}, C {}] = TagId(1) List.663;
|
||||
ret List.662;
|
||||
else
|
||||
let List.639 : {} = Struct {};
|
||||
let List.638 : [C {}, C {}] = TagId(0) List.639;
|
||||
ret List.638;
|
||||
let List.660 : {} = Struct {};
|
||||
let List.659 : [C {}, C {}] = TagId(0) List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.643 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.643;
|
||||
let List.664 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
18
crates/compiler/test_mono/generated/encode.txt
generated
18
crates/compiler/test_mono/generated/encode.txt
generated
|
@ -1,16 +1,16 @@
|
|||
procedure List.4 (List.132, List.133):
|
||||
let List.641 : U64 = 1i64;
|
||||
let List.639 : List U8 = CallByName List.70 List.132 List.641;
|
||||
let List.638 : List U8 = CallByName List.71 List.639 List.133;
|
||||
ret List.638;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.662 : U64 = 1i64;
|
||||
let List.660 : List U8 = CallByName List.70 List.135 List.662;
|
||||
let List.659 : List U8 = CallByName List.71 List.660 List.136;
|
||||
ret List.659;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.642;
|
||||
let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.663;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.640;
|
||||
let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.661;
|
||||
|
||||
procedure Test.23 (Test.24, Test.35, Test.22):
|
||||
let Test.37 : List U8 = CallByName List.4 Test.24 Test.22;
|
||||
|
|
|
@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108):
|
|||
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||
ret Encode.110;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
|
||||
joinpoint List.688 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.690 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.690 then
|
||||
let List.694 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.694;
|
||||
let List.179 : List U8 = CallByName Test.71 List.175 List.694;
|
||||
let List.693 : U64 = 1i64;
|
||||
let List.692 : U64 = CallByName Num.51 List.177 List.693;
|
||||
jump List.688 List.174 List.179 List.176 List.692 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.29;
|
||||
jump List.688 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.665 : U64 = 0i64;
|
||||
let List.666 : U64 = CallByName List.6 List.168;
|
||||
let List.664 : List U8 = CallByName List.97 List.168 List.169 List.170 List.665 List.666;
|
||||
ret List.664;
|
||||
procedure List.100 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.71 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.37;
|
||||
jump List.662 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.686 : U64 = 1i64;
|
||||
let List.685 : List U8 = CallByName List.70 List.132 List.686;
|
||||
let List.684 : List U8 = CallByName List.71 List.685 List.133;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.686 : U64 = 0i64;
|
||||
let List.687 : U64 = CallByName List.6 List.171;
|
||||
let List.685 : List U8 = CallByName List.100 List.171 List.172 List.173 List.686 List.687;
|
||||
ret List.685;
|
||||
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.707 : U64 = 1i64;
|
||||
let List.706 : List U8 = CallByName List.70 List.135 List.707;
|
||||
let List.705 : List U8 = CallByName List.71 List.706 List.136;
|
||||
ret List.705;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.689;
|
||||
let List.710 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.710;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.674 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.674;
|
||||
let List.695 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.695;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.680 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.680;
|
||||
let List.701 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.701;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.678 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.678;
|
||||
let List.699 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.699;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.688 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.688;
|
||||
|
||||
procedure List.97 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.29;
|
||||
jump List.641 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
|
||||
|
||||
procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
|
||||
joinpoint List.667 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.669 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.669 then
|
||||
let List.673 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.673;
|
||||
let List.176 : List U8 = CallByName Test.71 List.172 List.673;
|
||||
let List.672 : U64 = 1i64;
|
||||
let List.671 : U64 = CallByName Num.51 List.174 List.672;
|
||||
jump List.667 List.171 List.176 List.173 List.671 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.40;
|
||||
jump List.667 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
|
||||
let List.709 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.709;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.286 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108):
|
|||
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||
ret Encode.110;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||
ret List.658;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.654;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.652;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.71 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.16;
|
||||
jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||
jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : List U8 = CallByName List.70 List.135 List.681;
|
||||
let List.679 : List U8 = CallByName List.71 List.680 List.136;
|
||||
ret List.679;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.673;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108):
|
|||
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||
ret Encode.110;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||
ret List.658;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.654;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.652;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.71 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.20;
|
||||
jump List.641 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
|
||||
jump List.662 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : List U8 = CallByName List.70 List.135 List.681;
|
||||
let List.679 : List U8 = CallByName List.71 List.680 List.136;
|
||||
ret List.679;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.673;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108):
|
|||
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||
ret Encode.110;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.648 : U64 = 1i64;
|
||||
let List.647 : List U8 = CallByName List.70 List.132 List.648;
|
||||
let List.646 : List U8 = CallByName List.71 List.647 List.133;
|
||||
ret List.646;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.669 : U64 = 1i64;
|
||||
let List.668 : List U8 = CallByName List.70 List.135 List.669;
|
||||
let List.667 : List U8 = CallByName List.71 List.668 List.136;
|
||||
ret List.667;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.642;
|
||||
let List.663 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.663;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.640;
|
||||
let List.661 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.661;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.650;
|
||||
let List.671 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.671;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -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.100 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.64 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.22;
|
||||
jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
|
||||
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.685;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||
ret List.658;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : List U8 = CallByName List.70 List.135 List.681;
|
||||
let List.679 : List U8 = CallByName List.71 List.680 List.136;
|
||||
ret List.679;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.654;
|
||||
let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.652;
|
||||
let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.673;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.13;
|
||||
jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||
let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -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.100 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.64 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.23;
|
||||
jump List.662 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
|
||||
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.685;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||
ret List.658;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : List U8 = CallByName List.70 List.135 List.681;
|
||||
let List.679 : List U8 = CallByName List.71 List.680 List.136;
|
||||
ret List.679;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.654;
|
||||
let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.652;
|
||||
let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.673;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.14;
|
||||
jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||
let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.11 (List.146, List.147):
|
||||
let List.700 : List {U32, U32} = CallByName List.68 List.147;
|
||||
let List.699 : List {U32, U32} = CallByName List.95 List.146 List.147 List.700;
|
||||
ret List.699;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.703 : U64 = 0i64;
|
||||
let List.704 : U64 = CallByName List.6 List.168;
|
||||
let List.702 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.703 List.704;
|
||||
ret List.702;
|
||||
|
||||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.664 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.663 : List {U32, U32} = StructAtIndex 0 List.664;
|
||||
ret List.663;
|
||||
|
||||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.666 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.665 : List {Str, I64} = StructAtIndex 0 List.666;
|
||||
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.666;
|
||||
dec #Derived_gen.71;
|
||||
ret List.665;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.675 : U64 = 1i64;
|
||||
let List.673 : List {Str, I64} = CallByName List.70 List.132 List.675;
|
||||
let List.672 : List {Str, I64} = CallByName List.71 List.673 List.133;
|
||||
ret List.672;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.654 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.654;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.701;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.713;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.662 : U64 = CallByName List.6 List.121;
|
||||
let List.659 : Int1 = CallByName Num.22 List.122 List.662;
|
||||
if List.659 then
|
||||
let List.660 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.660;
|
||||
else
|
||||
let List.658 : {List {U32, U32}, {U32, U32}} = Struct {List.121, List.123};
|
||||
ret List.658;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.671 : U64 = CallByName List.6 List.121;
|
||||
let List.668 : Int1 = CallByName Num.22 List.122 List.671;
|
||||
if List.668 then
|
||||
let List.669 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.669;
|
||||
else
|
||||
let List.667 : {List {Str, I64}, {Str, I64}} = Struct {List.121, List.123};
|
||||
ret List.667;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.712 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.712;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.661 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.661;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.670 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.670;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.698 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.698;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.676 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.676;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.674 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.674;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.695 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.695;
|
||||
|
||||
procedure List.83 (List.177, List.178, List.179):
|
||||
let List.678 : U64 = 0i64;
|
||||
let List.679 : U64 = CallByName List.6 List.177;
|
||||
let List.677 : List {U32, U32} = CallByName List.98 List.177 List.178 List.179 List.678 List.679;
|
||||
ret List.677;
|
||||
|
||||
procedure List.95 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
|
||||
joinpoint List.689 List.148 List.149 List.150:
|
||||
let List.697 : U64 = 0i64;
|
||||
let List.691 : Int1 = CallByName Num.24 List.149 List.697;
|
||||
if List.691 then
|
||||
let List.696 : U64 = 1i64;
|
||||
let List.693 : U64 = CallByName Num.75 List.149 List.696;
|
||||
let List.694 : List {U32, U32} = CallByName List.71 List.150 List.148;
|
||||
jump List.689 List.148 List.693 List.694;
|
||||
procedure List.100 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
|
||||
joinpoint List.726 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.728 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.728 then
|
||||
let List.732 : {Str, I64} = CallByName List.66 List.174 List.177;
|
||||
inc List.732;
|
||||
let List.179 : {Str, Int1} = CallByName Dict.188 List.175 List.732 List.176;
|
||||
let List.731 : U64 = 1i64;
|
||||
let List.730 : U64 = CallByName Num.51 List.177 List.731;
|
||||
jump List.726 List.174 List.179 List.176 List.730 List.178;
|
||||
else
|
||||
ret List.150;
|
||||
in
|
||||
jump List.689 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
|
||||
|
||||
procedure List.97 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, I64} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.26;
|
||||
jump List.641 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
|
||||
|
||||
procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
|
||||
joinpoint List.705 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.707 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.707 then
|
||||
let List.711 : {Str, I64} = CallByName List.66 List.171 List.174;
|
||||
inc List.711;
|
||||
let List.176 : {Str, Int1} = CallByName Dict.188 List.172 List.711 List.173;
|
||||
let List.710 : U64 = 1i64;
|
||||
let List.709 : U64 = CallByName Num.51 List.174 List.710;
|
||||
jump List.705 List.171 List.176 List.173 List.709 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.40;
|
||||
jump List.705 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
|
||||
jump List.726 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
|
||||
|
||||
procedure List.98 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65):
|
||||
joinpoint List.680 List.180 List.181 List.182 List.183 List.184:
|
||||
let List.682 : Int1 = CallByName Num.22 List.183 List.184;
|
||||
if List.682 then
|
||||
let List.686 : {Str, I64} = CallByName List.66 List.180 List.183;
|
||||
inc List.686;
|
||||
let List.185 : List {U32, U32} = CallByName Dict.406 List.181 List.686 List.183 List.182;
|
||||
let List.685 : U64 = 1i64;
|
||||
let List.684 : U64 = CallByName Num.51 List.183 List.685;
|
||||
jump List.680 List.180 List.185 List.182 List.684 List.184;
|
||||
procedure List.100 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, I64} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.180;
|
||||
ret List.181;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.61;
|
||||
jump List.680 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65;
|
||||
jump List.662 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65;
|
||||
|
||||
procedure List.101 (#Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25):
|
||||
joinpoint List.701 List.183 List.184 List.185 List.186 List.187:
|
||||
let List.703 : Int1 = CallByName Num.22 List.186 List.187;
|
||||
if List.703 then
|
||||
let List.707 : {Str, I64} = CallByName List.66 List.183 List.186;
|
||||
inc List.707;
|
||||
let List.188 : List {U32, U32} = CallByName Dict.406 List.184 List.707 List.186 List.185;
|
||||
let List.706 : U64 = 1i64;
|
||||
let List.705 : U64 = CallByName Num.51 List.186 List.706;
|
||||
jump List.701 List.183 List.188 List.185 List.705 List.187;
|
||||
else
|
||||
dec List.183;
|
||||
ret List.184;
|
||||
in
|
||||
inc #Derived_gen.21;
|
||||
jump List.701 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25;
|
||||
|
||||
procedure List.11 (List.149, List.150):
|
||||
let List.721 : List {U32, U32} = CallByName List.68 List.150;
|
||||
let List.720 : List {U32, U32} = CallByName List.98 List.149 List.150 List.721;
|
||||
ret List.720;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.724 : U64 = 0i64;
|
||||
let List.725 : U64 = CallByName List.6 List.171;
|
||||
let List.723 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.724 List.725;
|
||||
ret List.723;
|
||||
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.685 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.684 : List {U32, U32} = StructAtIndex 0 List.685;
|
||||
ret List.684;
|
||||
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.687 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.686 : List {Str, I64} = StructAtIndex 0 List.687;
|
||||
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.687;
|
||||
dec #Derived_gen.71;
|
||||
ret List.686;
|
||||
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.696 : U64 = 1i64;
|
||||
let List.694 : List {Str, I64} = CallByName List.70 List.135 List.696;
|
||||
let List.693 : List {Str, I64} = CallByName List.71 List.694 List.136;
|
||||
ret List.693;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.675 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.675;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.722 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.722;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.734 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.734;
|
||||
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.683 : U64 = CallByName List.6 List.124;
|
||||
let List.680 : Int1 = CallByName Num.22 List.125 List.683;
|
||||
if List.680 then
|
||||
let List.681 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.681;
|
||||
else
|
||||
let List.679 : {List {U32, U32}, {U32, U32}} = Struct {List.124, List.126};
|
||||
ret List.679;
|
||||
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.692 : U64 = CallByName List.6 List.124;
|
||||
let List.689 : Int1 = CallByName Num.22 List.125 List.692;
|
||||
if List.689 then
|
||||
let List.690 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.690;
|
||||
else
|
||||
let List.688 : {List {Str, I64}, {Str, I64}} = Struct {List.124, List.126};
|
||||
ret List.688;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.733 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.733;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.682 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.682;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.691 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.691;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.719 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.719;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.697 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.697;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.695 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.695;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.716 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.716;
|
||||
|
||||
procedure List.83 (List.180, List.181, List.182):
|
||||
let List.699 : U64 = 0i64;
|
||||
let List.700 : U64 = CallByName List.6 List.180;
|
||||
let List.698 : List {U32, U32} = CallByName List.101 List.180 List.181 List.182 List.699 List.700;
|
||||
ret List.698;
|
||||
|
||||
procedure List.98 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
|
||||
joinpoint List.710 List.151 List.152 List.153:
|
||||
let List.718 : U64 = 0i64;
|
||||
let List.712 : Int1 = CallByName Num.24 List.152 List.718;
|
||||
if List.712 then
|
||||
let List.717 : U64 = 1i64;
|
||||
let List.714 : U64 = CallByName Num.75 List.152 List.717;
|
||||
let List.715 : List {U32, U32} = CallByName List.71 List.153 List.151;
|
||||
jump List.710 List.151 List.714 List.715;
|
||||
else
|
||||
ret List.153;
|
||||
in
|
||||
jump List.710 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
|
||||
|
||||
procedure Num.131 (#Attr.2):
|
||||
let Num.289 : U32 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -135,35 +135,35 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : I64 = CallByName List.66 List.171 List.174;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.160 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : I64 = CallByName List.66 List.174 List.177;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.160 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.8;
|
||||
jump List.641 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
|
||||
jump List.662 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -221,67 +221,67 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.30;
|
||||
jump List.662 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.651 : U64 = 0i64;
|
||||
let List.652 : U64 = CallByName List.6 List.168;
|
||||
let List.650 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.651 List.652;
|
||||
ret List.650;
|
||||
procedure List.100 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47):
|
||||
joinpoint List.674 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.676 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.676 then
|
||||
let List.680 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.680;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.680;
|
||||
let List.679 : U64 = 1i64;
|
||||
let List.678 : U64 = CallByName Num.51 List.177 List.679;
|
||||
jump List.674 List.174 List.179 List.176 List.678 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.43;
|
||||
jump List.674 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.672 : U64 = 0i64;
|
||||
let List.673 : U64 = CallByName List.6 List.171;
|
||||
let List.671 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.672 List.673;
|
||||
ret List.671;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.661 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.661;
|
||||
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.682;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.660 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.660;
|
||||
|
||||
procedure List.97 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.28;
|
||||
jump List.641 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
|
||||
|
||||
procedure List.97 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
|
||||
joinpoint List.653 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.655 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.655 then
|
||||
let List.659 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.659;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.659;
|
||||
let List.658 : U64 = 1i64;
|
||||
let List.657 : U64 = CallByName Num.51 List.174 List.658;
|
||||
jump List.653 List.171 List.176 List.173 List.657 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.33;
|
||||
jump List.653 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
|
||||
let List.681 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.681;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -161,36 +161,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {[C I64, C Decimal], Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.22;
|
||||
jump List.662 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {[C I64, C Decimal], Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.14;
|
||||
jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||
let List.669 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -139,36 +139,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.12;
|
||||
jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
||||
jump List.662 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -146,36 +146,36 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : {Str, Str} = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : {Str, Int1} = CallByName Inspect.233 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.16;
|
||||
jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||
jump List.662 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -132,43 +132,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.1 (List.115):
|
||||
let List.651 : U64 = CallByName List.6 List.115;
|
||||
let List.652 : U64 = 0i64;
|
||||
let List.650 : Int1 = CallByName Bool.11 List.651 List.652;
|
||||
ret List.650;
|
||||
procedure List.1 (List.118):
|
||||
let List.672 : U64 = CallByName List.6 List.118;
|
||||
let List.673 : U64 = 0i64;
|
||||
let List.671 : Int1 = CallByName Bool.11 List.672 List.673;
|
||||
ret List.671;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : Str = CallByName Inspect.210 List.175 List.668;
|
||||
dec List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.14;
|
||||
jump List.662 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : Str = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : Str = CallByName Inspect.210 List.172 List.647;
|
||||
dec List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.10;
|
||||
jump List.641 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
|
||||
let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -135,43 +135,43 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
|||
procedure Inspect.64 (Inspect.302):
|
||||
ret Inspect.302;
|
||||
|
||||
procedure List.1 (List.115):
|
||||
let List.651 : U64 = CallByName List.6 List.115;
|
||||
let List.652 : U64 = 0i64;
|
||||
let List.650 : Int1 = CallByName Bool.11 List.651 List.652;
|
||||
ret List.650;
|
||||
procedure List.1 (List.118):
|
||||
let List.672 : U64 = CallByName List.6 List.118;
|
||||
let List.673 : U64 = 0i64;
|
||||
let List.671 : Int1 = CallByName Bool.11 List.672 List.673;
|
||||
ret List.671;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.100 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : Str = CallByName Inspect.210 List.175 List.668;
|
||||
dec List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.13;
|
||||
jump List.662 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : Str = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : Str = CallByName Inspect.210 List.172 List.647;
|
||||
dec List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.15;
|
||||
jump List.641 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19;
|
||||
let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
procedure List.6 (#Attr.2):
|
||||
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.638;
|
||||
let List.659 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.659;
|
||||
|
||||
procedure Num.19 (#Attr.2, #Attr.3):
|
||||
let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||
|
|
|
@ -6,40 +6,40 @@ procedure Bool.2 ():
|
|||
let Bool.23 : Int1 = true;
|
||||
ret Bool.23;
|
||||
|
||||
procedure List.2 (List.116, List.117):
|
||||
let List.652 : U64 = CallByName List.6 List.116;
|
||||
let List.648 : Int1 = CallByName Num.22 List.117 List.652;
|
||||
if List.648 then
|
||||
let List.650 : I64 = CallByName List.66 List.116 List.117;
|
||||
let List.649 : [C {}, C I64] = TagId(1) List.650;
|
||||
ret List.649;
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.673 : U64 = CallByName List.6 List.119;
|
||||
let List.669 : Int1 = CallByName Num.22 List.120 List.673;
|
||||
if List.669 then
|
||||
let List.671 : I64 = CallByName List.66 List.119 List.120;
|
||||
let List.670 : [C {}, C I64] = TagId(1) List.671;
|
||||
ret List.670;
|
||||
else
|
||||
let List.647 : {} = Struct {};
|
||||
let List.646 : [C {}, C I64] = TagId(0) List.647;
|
||||
ret List.646;
|
||||
let List.668 : {} = Struct {};
|
||||
let List.667 : [C {}, C I64] = TagId(0) List.668;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.653;
|
||||
let List.674 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.674;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
let List.672 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.9 (List.388):
|
||||
let List.645 : U64 = 0i64;
|
||||
let List.638 : [C {}, C I64] = CallByName List.2 List.388 List.645;
|
||||
let List.642 : U8 = 1i64;
|
||||
let List.643 : U8 = GetTagId List.638;
|
||||
let List.644 : Int1 = lowlevel Eq List.642 List.643;
|
||||
if List.644 then
|
||||
let List.389 : I64 = UnionAtIndex (Id 1) (Index 0) List.638;
|
||||
let List.639 : [C Int1, C I64] = TagId(1) List.389;
|
||||
ret List.639;
|
||||
procedure List.9 (List.391):
|
||||
let List.666 : U64 = 0i64;
|
||||
let List.659 : [C {}, C I64] = CallByName List.2 List.391 List.666;
|
||||
let List.663 : U8 = 1i64;
|
||||
let List.664 : U8 = GetTagId List.659;
|
||||
let List.665 : Int1 = lowlevel Eq List.663 List.664;
|
||||
if List.665 then
|
||||
let List.392 : I64 = UnionAtIndex (Id 1) (Index 0) List.659;
|
||||
let List.660 : [C Int1, C I64] = TagId(1) List.392;
|
||||
ret List.660;
|
||||
else
|
||||
let List.641 : Int1 = true;
|
||||
let List.640 : [C Int1, C I64] = TagId(0) List.641;
|
||||
ret List.640;
|
||||
let List.662 : Int1 = true;
|
||||
let List.661 : [C Int1, C I64] = TagId(0) List.662;
|
||||
ret List.661;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
188
crates/compiler/test_mono/generated/issue_4770.txt
generated
188
crates/compiler/test_mono/generated/issue_4770.txt
generated
|
@ -6,118 +6,118 @@ procedure Bool.2 ():
|
|||
let Bool.24 : Int1 = true;
|
||||
ret Bool.24;
|
||||
|
||||
procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
|
||||
joinpoint List.676 List.287 List.288 List.289 List.290 List.291 List.292:
|
||||
let List.678 : Int1 = CallByName Num.22 List.291 List.292;
|
||||
if List.678 then
|
||||
let List.684 : [<r>C I64, C List *self] = CallByName List.66 List.287 List.291;
|
||||
inc List.684;
|
||||
let List.685 : [<r>C I64, C List *self] = CallByName List.66 List.288 List.291;
|
||||
inc List.685;
|
||||
let List.293 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.684 List.685;
|
||||
let List.680 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.289 List.293;
|
||||
let List.682 : U64 = 1i64;
|
||||
let List.681 : U64 = CallByName Num.51 List.291 List.682;
|
||||
jump List.676 List.287 List.288 List.680 List.290 List.681 List.292;
|
||||
procedure List.105 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
||||
joinpoint List.697 List.290 List.291 List.292 List.293 List.294 List.295:
|
||||
let List.699 : Int1 = CallByName Num.22 List.294 List.295;
|
||||
if List.699 then
|
||||
let List.705 : [<r>C I64, C List *self] = CallByName List.66 List.290 List.294;
|
||||
inc List.705;
|
||||
let List.706 : [<r>C I64, C List *self] = CallByName List.66 List.291 List.294;
|
||||
inc List.706;
|
||||
let List.296 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.705 List.706;
|
||||
let List.701 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.292 List.296;
|
||||
let List.703 : U64 = 1i64;
|
||||
let List.702 : U64 = CallByName Num.51 List.294 List.703;
|
||||
jump List.697 List.290 List.291 List.701 List.293 List.702 List.295;
|
||||
else
|
||||
dec List.287;
|
||||
dec List.288;
|
||||
ret List.289;
|
||||
dec List.291;
|
||||
dec List.290;
|
||||
ret List.292;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
inc #Derived_gen.1;
|
||||
jump List.676 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
|
||||
inc #Derived_gen.6;
|
||||
inc #Derived_gen.7;
|
||||
jump List.697 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
||||
|
||||
procedure List.112 (List.541, List.542, List.543):
|
||||
let List.652 : U64 = 0i64;
|
||||
let List.653 : U64 = CallByName List.6 List.541;
|
||||
let List.651 : [C {}, C {}] = CallByName List.80 List.541 List.542 List.543 List.652 List.653;
|
||||
ret List.651;
|
||||
procedure List.115 (List.562, List.563, List.564):
|
||||
let List.673 : U64 = 0i64;
|
||||
let List.674 : U64 = CallByName List.6 List.562;
|
||||
let List.672 : [C {}, C {}] = CallByName List.80 List.562 List.563 List.564 List.673 List.674;
|
||||
ret List.672;
|
||||
|
||||
procedure List.23 (List.283, List.284, List.285):
|
||||
let List.688 : U64 = CallByName List.6 List.283;
|
||||
let List.689 : U64 = CallByName List.6 List.284;
|
||||
let List.286 : U64 = CallByName Num.148 List.688 List.689;
|
||||
let List.674 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.286;
|
||||
let List.675 : U64 = 0i64;
|
||||
let List.673 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.102 List.283 List.284 List.674 List.285 List.675 List.286;
|
||||
ret List.673;
|
||||
procedure List.23 (List.286, List.287, List.288):
|
||||
let List.709 : U64 = CallByName List.6 List.286;
|
||||
let List.710 : U64 = CallByName List.6 List.287;
|
||||
let List.289 : U64 = CallByName Num.148 List.709 List.710;
|
||||
let List.695 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.289;
|
||||
let List.696 : U64 = 0i64;
|
||||
let List.694 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.105 List.286 List.287 List.695 List.288 List.696 List.289;
|
||||
ret List.694;
|
||||
|
||||
procedure List.244 (List.640, List.245, List.243):
|
||||
let List.670 : Int1 = CallByName Test.1 List.245;
|
||||
if List.670 then
|
||||
let List.672 : {} = Struct {};
|
||||
let List.671 : [C {}, C {}] = TagId(1) List.672;
|
||||
ret List.671;
|
||||
procedure List.247 (List.661, List.248, List.246):
|
||||
let List.691 : Int1 = CallByName Test.1 List.248;
|
||||
if List.691 then
|
||||
let List.693 : {} = Struct {};
|
||||
let List.692 : [C {}, C {}] = TagId(1) List.693;
|
||||
ret List.692;
|
||||
else
|
||||
let List.669 : {} = Struct {};
|
||||
let List.668 : [C {}, C {}] = TagId(0) List.669;
|
||||
ret List.668;
|
||||
let List.690 : {} = Struct {};
|
||||
let List.689 : [C {}, C {}] = TagId(0) List.690;
|
||||
ret List.689;
|
||||
|
||||
procedure List.56 (List.242, List.243):
|
||||
let List.649 : {} = Struct {};
|
||||
let List.641 : [C {}, C {}] = CallByName List.112 List.242 List.649 List.243;
|
||||
let List.646 : U8 = 1i64;
|
||||
let List.647 : U8 = GetTagId List.641;
|
||||
let List.648 : Int1 = lowlevel Eq List.646 List.647;
|
||||
if List.648 then
|
||||
let List.642 : Int1 = CallByName Bool.2;
|
||||
ret List.642;
|
||||
procedure List.56 (List.245, List.246):
|
||||
let List.670 : {} = Struct {};
|
||||
let List.662 : [C {}, C {}] = CallByName List.115 List.245 List.670 List.246;
|
||||
let List.667 : U8 = 1i64;
|
||||
let List.668 : U8 = GetTagId List.662;
|
||||
let List.669 : Int1 = lowlevel Eq List.667 List.668;
|
||||
if List.669 then
|
||||
let List.663 : Int1 = CallByName Bool.2;
|
||||
ret List.663;
|
||||
else
|
||||
let List.643 : Int1 = CallByName Bool.1;
|
||||
ret List.643;
|
||||
let List.664 : Int1 = CallByName Bool.1;
|
||||
ret List.664;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.639;
|
||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.660;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.667;
|
||||
let List.688 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.688;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.666 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.666;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.686 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.686;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.687 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
||||
let List.687 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.687;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.683 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.707 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.707;
|
||||
|
||||
procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
||||
joinpoint List.654 List.544 List.545 List.546 List.547 List.548:
|
||||
let List.656 : Int1 = CallByName Num.22 List.547 List.548;
|
||||
if List.656 then
|
||||
let List.665 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.544 List.547;
|
||||
inc List.665;
|
||||
let List.657 : [C {}, C {}] = CallByName List.244 List.545 List.665 List.546;
|
||||
let List.662 : U8 = 1i64;
|
||||
let List.663 : U8 = GetTagId List.657;
|
||||
let List.664 : Int1 = lowlevel Eq List.662 List.663;
|
||||
if List.664 then
|
||||
let List.549 : {} = UnionAtIndex (Id 1) (Index 0) List.657;
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : U64 = CallByName Num.51 List.547 List.660;
|
||||
jump List.654 List.544 List.549 List.546 List.659 List.548;
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.708 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.708;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.704 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.704;
|
||||
|
||||
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.675 List.565 List.566 List.567 List.568 List.569:
|
||||
let List.677 : Int1 = CallByName Num.22 List.568 List.569;
|
||||
if List.677 then
|
||||
let List.686 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.565 List.568;
|
||||
inc List.686;
|
||||
let List.678 : [C {}, C {}] = CallByName List.247 List.566 List.686 List.567;
|
||||
let List.683 : U8 = 1i64;
|
||||
let List.684 : U8 = GetTagId List.678;
|
||||
let List.685 : Int1 = lowlevel Eq List.683 List.684;
|
||||
if List.685 then
|
||||
let List.570 : {} = UnionAtIndex (Id 1) (Index 0) List.678;
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : U64 = CallByName Num.51 List.568 List.681;
|
||||
jump List.675 List.565 List.570 List.567 List.680 List.569;
|
||||
else
|
||||
dec List.544;
|
||||
let List.550 : {} = UnionAtIndex (Id 0) (Index 0) List.657;
|
||||
let List.661 : [C {}, C {}] = TagId(0) List.550;
|
||||
ret List.661;
|
||||
dec List.565;
|
||||
let List.571 : {} = UnionAtIndex (Id 0) (Index 0) List.678;
|
||||
let List.682 : [C {}, C {}] = TagId(0) List.571;
|
||||
ret List.682;
|
||||
else
|
||||
dec List.544;
|
||||
let List.655 : [C {}, C {}] = TagId(1) List.545;
|
||||
ret List.655;
|
||||
dec List.565;
|
||||
let List.676 : [C {}, C {}] = TagId(1) List.566;
|
||||
ret List.676;
|
||||
in
|
||||
inc #Derived_gen.7;
|
||||
jump List.654 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
||||
inc #Derived_gen.0;
|
||||
jump List.675 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure Num.148 (Num.225, Num.226):
|
||||
let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226;
|
||||
|
@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3):
|
|||
let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
||||
ret Num.284;
|
||||
|
||||
procedure Test.1 (#Derived_gen.6):
|
||||
procedure Test.1 (#Derived_gen.5):
|
||||
joinpoint Test.26 Test.6:
|
||||
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
||||
let Test.66 : U8 = 0i64;
|
||||
|
@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.6):
|
|||
let Test.44 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.45, Test.46};
|
||||
jump Test.26 Test.44;
|
||||
in
|
||||
jump Test.26 #Derived_gen.6;
|
||||
jump Test.26 #Derived_gen.5;
|
||||
|
||||
procedure Test.15 (Test.16, Test.17):
|
||||
let Test.36 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.16, Test.17};
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.649;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : [<rnu>C *self, <null>] = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.172 List.647;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : [<rnu>C *self, <null>] = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.175 List.668;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.641 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.670 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.670;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.669 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
18
crates/compiler/test_mono/generated/list_append.txt
generated
18
crates/compiler/test_mono/generated/list_append.txt
generated
|
@ -1,16 +1,16 @@
|
|||
procedure List.4 (List.132, List.133):
|
||||
let List.641 : U64 = 1i64;
|
||||
let List.639 : List I64 = CallByName List.70 List.132 List.641;
|
||||
let List.638 : List I64 = CallByName List.71 List.639 List.133;
|
||||
ret List.638;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.662 : U64 = 1i64;
|
||||
let List.660 : List I64 = CallByName List.70 List.135 List.662;
|
||||
let List.659 : List I64 = CallByName List.71 List.660 List.136;
|
||||
ret List.659;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.642;
|
||||
let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.663;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.640;
|
||||
let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.661;
|
||||
|
||||
procedure Test.0 ():
|
||||
let Test.2 : List I64 = Array [1i64];
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
procedure List.4 (List.132, List.133):
|
||||
let List.641 : U64 = 1i64;
|
||||
let List.639 : List I64 = CallByName List.70 List.132 List.641;
|
||||
let List.638 : List I64 = CallByName List.71 List.639 List.133;
|
||||
ret List.638;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.662 : U64 = 1i64;
|
||||
let List.660 : List I64 = CallByName List.70 List.135 List.662;
|
||||
let List.659 : List I64 = CallByName List.71 List.660 List.136;
|
||||
ret List.659;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.642;
|
||||
let List.663 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.663;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.640;
|
||||
let List.661 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.661;
|
||||
|
||||
procedure Test.1 (Test.2):
|
||||
let Test.6 : I64 = 42i64;
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.641 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.640 : List I64 = StructAtIndex 0 List.641;
|
||||
ret List.640;
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.662 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.661 : List I64 = StructAtIndex 0 List.662;
|
||||
ret List.661;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.639;
|
||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.660;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.646 : U64 = CallByName List.6 List.121;
|
||||
let List.643 : Int1 = CallByName Num.22 List.122 List.646;
|
||||
if List.643 then
|
||||
let List.644 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.644;
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.667 : U64 = CallByName List.6 List.124;
|
||||
let List.664 : Int1 = CallByName Num.22 List.125 List.667;
|
||||
if List.664 then
|
||||
let List.665 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.665;
|
||||
else
|
||||
let List.642 : {List I64, I64} = Struct {List.121, List.123};
|
||||
ret List.642;
|
||||
let List.663 : {List I64, I64} = Struct {List.124, List.126};
|
||||
ret List.663;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.645 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.645;
|
||||
let List.666 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.666;
|
||||
|
||||
procedure Num.19 (#Attr.2, #Attr.3):
|
||||
let Num.281 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||
|
|
28
crates/compiler/test_mono/generated/list_get.txt
generated
28
crates/compiler/test_mono/generated/list_get.txt
generated
|
@ -1,22 +1,22 @@
|
|||
procedure List.2 (List.116, List.117):
|
||||
let List.644 : U64 = CallByName List.6 List.116;
|
||||
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||
if List.640 then
|
||||
let List.642 : I64 = CallByName List.66 List.116 List.117;
|
||||
let List.641 : [C {}, C I64] = TagId(1) List.642;
|
||||
ret List.641;
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.665 : U64 = CallByName List.6 List.119;
|
||||
let List.661 : Int1 = CallByName Num.22 List.120 List.665;
|
||||
if List.661 then
|
||||
let List.663 : I64 = CallByName List.66 List.119 List.120;
|
||||
let List.662 : [C {}, C I64] = TagId(1) List.663;
|
||||
ret List.662;
|
||||
else
|
||||
let List.639 : {} = Struct {};
|
||||
let List.638 : [C {}, C I64] = TagId(0) List.639;
|
||||
ret List.638;
|
||||
let List.660 : {} = Struct {};
|
||||
let List.659 : [C {}, C I64] = TagId(0) List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.643 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.643;
|
||||
let List.664 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
8
crates/compiler/test_mono/generated/list_len.txt
generated
8
crates/compiler/test_mono/generated/list_len.txt
generated
|
@ -1,10 +1,10 @@
|
|||
procedure List.6 (#Attr.2):
|
||||
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.638;
|
||||
let List.659 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.639;
|
||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.660;
|
||||
|
||||
procedure Num.19 (#Attr.2, #Attr.3):
|
||||
let Num.281 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,66 +1,66 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.650 : U64 = 0i64;
|
||||
let List.651 : U64 = CallByName List.6 List.168;
|
||||
let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651;
|
||||
ret List.649;
|
||||
procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
||||
joinpoint List.673 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.675 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.675 then
|
||||
let List.679 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.679;
|
||||
let List.179 : List Str = CallByName List.283 List.175 List.679 List.176;
|
||||
dec List.679;
|
||||
let List.678 : U64 = 1i64;
|
||||
let List.677 : U64 = CallByName Num.51 List.177 List.678;
|
||||
jump List.673 List.174 List.179 List.176 List.677 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.3;
|
||||
jump List.673 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
||||
|
||||
procedure List.2 (List.116, List.117):
|
||||
let List.644 : U64 = CallByName List.6 List.116;
|
||||
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||
if List.640 then
|
||||
let List.642 : Str = CallByName List.66 List.116 List.117;
|
||||
inc List.642;
|
||||
let List.641 : [C {}, C Str] = TagId(1) List.642;
|
||||
ret List.641;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.671 : U64 = 0i64;
|
||||
let List.672 : U64 = CallByName List.6 List.171;
|
||||
let List.670 : List Str = CallByName List.100 List.171 List.172 List.173 List.671 List.672;
|
||||
ret List.670;
|
||||
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.665 : U64 = CallByName List.6 List.119;
|
||||
let List.661 : Int1 = CallByName Num.22 List.120 List.665;
|
||||
if List.661 then
|
||||
let List.663 : Str = CallByName List.66 List.119 List.120;
|
||||
inc List.663;
|
||||
let List.662 : [C {}, C Str] = TagId(1) List.663;
|
||||
ret List.662;
|
||||
else
|
||||
let List.639 : {} = Struct {};
|
||||
let List.638 : [C {}, C Str] = TagId(0) List.639;
|
||||
ret List.638;
|
||||
let List.660 : {} = Struct {};
|
||||
let List.659 : [C {}, C Str] = TagId(0) List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.661 : Str = CallByName Test.3 List.282;
|
||||
let List.660 : List Str = CallByName List.71 List.281 List.661;
|
||||
ret List.660;
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.682 : Str = CallByName Test.3 List.285;
|
||||
let List.681 : List Str = CallByName List.71 List.284 List.682;
|
||||
ret List.681;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.647 : List Str = CallByName List.68 List.279;
|
||||
let List.646 : List Str = CallByName List.18 List.277 List.647 List.278;
|
||||
ret List.646;
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.668 : List Str = CallByName List.68 List.282;
|
||||
let List.667 : List Str = CallByName List.18 List.280 List.668 List.281;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.643;
|
||||
let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.663 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.663;
|
||||
let List.684 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.652 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.654 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.654 then
|
||||
let List.658 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.658;
|
||||
let List.176 : List Str = CallByName List.280 List.172 List.658 List.173;
|
||||
dec List.658;
|
||||
let List.657 : U64 = 1i64;
|
||||
let List.656 : U64 = CallByName Num.51 List.174 List.657;
|
||||
jump List.652 List.171 List.176 List.173 List.656 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.652 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,65 +1,65 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.650 : U64 = 0i64;
|
||||
let List.651 : U64 = CallByName List.6 List.168;
|
||||
let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651;
|
||||
ret List.649;
|
||||
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.673 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.675 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.675 then
|
||||
let List.679 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.679;
|
||||
let List.179 : List Str = CallByName List.283 List.175 List.679 List.176;
|
||||
let List.678 : U64 = 1i64;
|
||||
let List.677 : U64 = CallByName Num.51 List.177 List.678;
|
||||
jump List.673 List.174 List.179 List.176 List.677 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.2 (List.116, List.117):
|
||||
let List.644 : U64 = CallByName List.6 List.116;
|
||||
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||
if List.640 then
|
||||
let List.642 : Str = CallByName List.66 List.116 List.117;
|
||||
inc List.642;
|
||||
let List.641 : [C {}, C Str] = TagId(1) List.642;
|
||||
ret List.641;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.671 : U64 = 0i64;
|
||||
let List.672 : U64 = CallByName List.6 List.171;
|
||||
let List.670 : List Str = CallByName List.100 List.171 List.172 List.173 List.671 List.672;
|
||||
ret List.670;
|
||||
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.665 : U64 = CallByName List.6 List.119;
|
||||
let List.661 : Int1 = CallByName Num.22 List.120 List.665;
|
||||
if List.661 then
|
||||
let List.663 : Str = CallByName List.66 List.119 List.120;
|
||||
inc List.663;
|
||||
let List.662 : [C {}, C Str] = TagId(1) List.663;
|
||||
ret List.662;
|
||||
else
|
||||
let List.639 : {} = Struct {};
|
||||
let List.638 : [C {}, C Str] = TagId(0) List.639;
|
||||
ret List.638;
|
||||
let List.660 : {} = Struct {};
|
||||
let List.659 : [C {}, C Str] = TagId(0) List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.661 : Str = CallByName Test.3 List.282;
|
||||
let List.660 : List Str = CallByName List.71 List.281 List.661;
|
||||
ret List.660;
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.682 : Str = CallByName Test.3 List.285;
|
||||
let List.681 : List Str = CallByName List.71 List.284 List.682;
|
||||
ret List.681;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.647 : List Str = CallByName List.68 List.279;
|
||||
let List.646 : List Str = CallByName List.18 List.277 List.647 List.278;
|
||||
ret List.646;
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.668 : List Str = CallByName List.68 List.282;
|
||||
let List.667 : List Str = CallByName List.18 List.280 List.668 List.281;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.643;
|
||||
let List.664 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.663 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.663;
|
||||
let List.684 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
||||
joinpoint List.652 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.654 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.654 then
|
||||
let List.658 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.658;
|
||||
let List.176 : List Str = CallByName List.280 List.172 List.658 List.173;
|
||||
let List.657 : U64 = 1i64;
|
||||
let List.656 : U64 = CallByName Num.51 List.174 List.657;
|
||||
jump List.652 List.171 List.176 List.173 List.656 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.3;
|
||||
jump List.652 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
||||
let List.683 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,66 +1,66 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.642 : U64 = 0i64;
|
||||
let List.643 : U64 = CallByName List.6 List.168;
|
||||
let List.641 : List U8 = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||
ret List.641;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.657 : U8 = GetTagId List.278;
|
||||
joinpoint List.658 List.655:
|
||||
let List.654 : List U8 = CallByName List.71 List.281 List.655;
|
||||
ret List.654;
|
||||
procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
||||
joinpoint List.665 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.667 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.667 then
|
||||
let List.671 : U8 = CallByName List.66 List.174 List.177;
|
||||
let List.179 : List U8 = CallByName List.283 List.175 List.671 List.176;
|
||||
let List.670 : U64 = 1i64;
|
||||
let List.669 : U64 = CallByName Num.51 List.177 List.670;
|
||||
jump List.665 List.174 List.179 List.176 List.669 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
switch List.657:
|
||||
inc #Derived_gen.3;
|
||||
jump List.665 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.663 : U64 = 0i64;
|
||||
let List.664 : U64 = CallByName List.6 List.171;
|
||||
let List.662 : List U8 = CallByName List.100 List.171 List.172 List.173 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.678 : U8 = GetTagId List.281;
|
||||
joinpoint List.679 List.676:
|
||||
let List.675 : List U8 = CallByName List.71 List.284 List.676;
|
||||
ret List.675;
|
||||
in
|
||||
switch List.678:
|
||||
case 0:
|
||||
let List.659 : U8 = CallByName Test.4 List.282 List.278;
|
||||
jump List.658 List.659;
|
||||
let List.680 : U8 = CallByName Test.4 List.285 List.281;
|
||||
jump List.679 List.680;
|
||||
|
||||
case 1:
|
||||
let List.659 : U8 = CallByName Test.6 List.282 List.278;
|
||||
jump List.658 List.659;
|
||||
let List.680 : U8 = CallByName Test.6 List.285 List.281;
|
||||
jump List.679 List.680;
|
||||
|
||||
default:
|
||||
let List.659 : U8 = CallByName Test.8 List.282;
|
||||
jump List.658 List.659;
|
||||
let List.680 : U8 = CallByName Test.8 List.285;
|
||||
jump List.679 List.680;
|
||||
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.639 : List U8 = CallByName List.68 List.279;
|
||||
let List.638 : List U8 = CallByName List.18 List.277 List.639 List.278;
|
||||
ret List.638;
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.660 : List U8 = CallByName List.68 List.282;
|
||||
let List.659 : List U8 = CallByName List.18 List.280 List.660 List.281;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.652;
|
||||
let List.673 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.673;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
let List.672 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.660 : List U8 = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.660;
|
||||
let List.681 : List U8 = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.681;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.656 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.656;
|
||||
|
||||
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.646 then
|
||||
let List.650 : U8 = CallByName List.66 List.171 List.174;
|
||||
let List.176 : List U8 = CallByName List.280 List.172 List.650 List.173;
|
||||
let List.649 : U64 = 1i64;
|
||||
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
let List.677 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.677;
|
||||
|
||||
procedure Num.19 (#Attr.2, #Attr.3):
|
||||
let Num.283 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.639 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.638 : List I64 = StructAtIndex 0 List.639;
|
||||
ret List.638;
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.660 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.659 : List I64 = StructAtIndex 0 List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.644 : U64 = CallByName List.6 List.121;
|
||||
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||
if List.641 then
|
||||
let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.642;
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.665 : U64 = CallByName List.6 List.124;
|
||||
let List.662 : Int1 = CallByName Num.22 List.125 List.665;
|
||||
if List.662 then
|
||||
let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.663;
|
||||
else
|
||||
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||
ret List.640;
|
||||
let List.661 : {List I64, I64} = Struct {List.124, List.126};
|
||||
ret List.661;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.643;
|
||||
let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
procedure List.28 (#Attr.2, #Attr.3):
|
||||
let List.640 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
|
||||
ret List.640;
|
||||
let List.661 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
|
||||
ret List.661;
|
||||
|
||||
procedure List.59 (List.383):
|
||||
let List.639 : {} = Struct {};
|
||||
let List.638 : List I64 = CallByName List.28 List.383 List.639;
|
||||
ret List.638;
|
||||
procedure List.59 (List.386):
|
||||
let List.660 : {} = Struct {};
|
||||
let List.659 : List I64 = CallByName List.28 List.386 List.660;
|
||||
ret List.659;
|
||||
|
||||
procedure Num.46 (#Attr.2, #Attr.3):
|
||||
let Num.281 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,41 +1,41 @@
|
|||
procedure List.2 (List.116, List.117):
|
||||
let List.660 : U64 = CallByName List.6 List.116;
|
||||
let List.657 : Int1 = CallByName Num.22 List.117 List.660;
|
||||
if List.657 then
|
||||
let List.659 : I64 = CallByName List.66 List.116 List.117;
|
||||
let List.658 : [C {}, C I64] = TagId(1) List.659;
|
||||
ret List.658;
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.681 : U64 = CallByName List.6 List.119;
|
||||
let List.678 : Int1 = CallByName Num.22 List.120 List.681;
|
||||
if List.678 then
|
||||
let List.680 : I64 = CallByName List.66 List.119 List.120;
|
||||
let List.679 : [C {}, C I64] = TagId(1) List.680;
|
||||
ret List.679;
|
||||
else
|
||||
let List.656 : {} = Struct {};
|
||||
let List.655 : [C {}, C I64] = TagId(0) List.656;
|
||||
ret List.655;
|
||||
let List.677 : {} = Struct {};
|
||||
let List.676 : [C {}, C I64] = TagId(0) List.677;
|
||||
ret List.676;
|
||||
|
||||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.647 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.646 : List I64 = StructAtIndex 0 List.647;
|
||||
ret List.646;
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.667 : List I64 = StructAtIndex 0 List.668;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.644 : U64 = CallByName List.6 List.121;
|
||||
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||
if List.641 then
|
||||
let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.642;
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.665 : U64 = CallByName List.6 List.124;
|
||||
let List.662 : Int1 = CallByName Num.22 List.125 List.665;
|
||||
if List.662 then
|
||||
let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.663;
|
||||
else
|
||||
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||
ret List.640;
|
||||
let List.661 : {List I64, I64} = Struct {List.124, List.126};
|
||||
ret List.661;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.653;
|
||||
let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.674;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.643;
|
||||
let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.647 : {List U64, U64} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.646 : List U64 = StructAtIndex 0 List.647;
|
||||
ret List.646;
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.668 : {List U64, U64} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.667 : List U64 = StructAtIndex 0 List.668;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.644 : U64 = CallByName List.6 List.121;
|
||||
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||
if List.641 then
|
||||
let List.642 : {List U64, U64} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.642;
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.665 : U64 = CallByName List.6 List.124;
|
||||
let List.662 : Int1 = CallByName Num.22 List.125 List.665;
|
||||
if List.662 then
|
||||
let List.663 : {List U64, U64} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.663;
|
||||
else
|
||||
let List.640 : {List U64, U64} = Struct {List.121, List.123};
|
||||
ret List.640;
|
||||
let List.661 : {List U64, U64} = Struct {List.124, List.126};
|
||||
ret List.661;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.643 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.643;
|
||||
let List.664 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -1,52 +1,52 @@
|
|||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.642 : U64 = 0i64;
|
||||
let List.643 : U64 = CallByName List.6 List.168;
|
||||
let List.641 : List [<rnnu>C List *self] = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||
ret List.641;
|
||||
procedure List.100 (#Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8):
|
||||
joinpoint List.665 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.667 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.667 then
|
||||
let List.671 : [<rnnu>C List *self] = CallByName List.66 List.174 List.177;
|
||||
inc List.671;
|
||||
let List.179 : List [<rnnu>C List *self] = CallByName List.283 List.175 List.671 List.176;
|
||||
let List.670 : U64 = 1i64;
|
||||
let List.669 : U64 = CallByName Num.51 List.177 List.670;
|
||||
jump List.665 List.174 List.179 List.176 List.669 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.4;
|
||||
jump List.665 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8;
|
||||
|
||||
procedure List.280 (List.281, List.282, List.278):
|
||||
let List.655 : [<rnnu>C List *self] = CallByName Test.2 List.282;
|
||||
let List.654 : List [<rnnu>C List *self] = CallByName List.71 List.281 List.655;
|
||||
ret List.654;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.663 : U64 = 0i64;
|
||||
let List.664 : U64 = CallByName List.6 List.171;
|
||||
let List.662 : List [<rnnu>C List *self] = CallByName List.100 List.171 List.172 List.173 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.5 (List.277, List.278):
|
||||
let List.279 : U64 = CallByName List.6 List.277;
|
||||
let List.639 : List [<rnnu>C List *self] = CallByName List.68 List.279;
|
||||
let List.638 : List [<rnnu>C List *self] = CallByName List.18 List.277 List.639 List.278;
|
||||
ret List.638;
|
||||
procedure List.283 (List.284, List.285, List.281):
|
||||
let List.676 : [<rnnu>C List *self] = CallByName Test.2 List.285;
|
||||
let List.675 : List [<rnnu>C List *self] = CallByName List.71 List.284 List.676;
|
||||
ret List.675;
|
||||
|
||||
procedure List.5 (List.280, List.281):
|
||||
let List.282 : U64 = CallByName List.6 List.280;
|
||||
let List.660 : List [<rnnu>C List *self] = CallByName List.68 List.282;
|
||||
let List.659 : List [<rnnu>C List *self] = CallByName List.18 List.280 List.660 List.281;
|
||||
ret List.659;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.652;
|
||||
let List.673 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.673;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.651 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.651;
|
||||
let List.672 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.672;
|
||||
|
||||
procedure List.68 (#Attr.2):
|
||||
let List.657 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.657;
|
||||
let List.678 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
|
||||
ret List.678;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.656 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.656;
|
||||
|
||||
procedure List.97 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
|
||||
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.646 then
|
||||
let List.650 : [<rnnu>C List *self] = CallByName List.66 List.171 List.174;
|
||||
inc List.650;
|
||||
let List.176 : List [<rnnu>C List *self] = CallByName List.280 List.172 List.650 List.173;
|
||||
let List.649 : U64 = 1i64;
|
||||
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.1;
|
||||
jump List.644 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
|
||||
let List.677 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.677;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
56
crates/compiler/test_mono/generated/rigids.txt
generated
56
crates/compiler/test_mono/generated/rigids.txt
generated
|
@ -1,41 +1,41 @@
|
|||
procedure List.2 (List.116, List.117):
|
||||
let List.660 : U64 = CallByName List.6 List.116;
|
||||
let List.657 : Int1 = CallByName Num.22 List.117 List.660;
|
||||
if List.657 then
|
||||
let List.659 : I64 = CallByName List.66 List.116 List.117;
|
||||
let List.658 : [C {}, C I64] = TagId(1) List.659;
|
||||
ret List.658;
|
||||
procedure List.2 (List.119, List.120):
|
||||
let List.681 : U64 = CallByName List.6 List.119;
|
||||
let List.678 : Int1 = CallByName Num.22 List.120 List.681;
|
||||
if List.678 then
|
||||
let List.680 : I64 = CallByName List.66 List.119 List.120;
|
||||
let List.679 : [C {}, C I64] = TagId(1) List.680;
|
||||
ret List.679;
|
||||
else
|
||||
let List.656 : {} = Struct {};
|
||||
let List.655 : [C {}, C I64] = TagId(0) List.656;
|
||||
ret List.655;
|
||||
let List.677 : {} = Struct {};
|
||||
let List.676 : [C {}, C I64] = TagId(0) List.677;
|
||||
ret List.676;
|
||||
|
||||
procedure List.3 (List.124, List.125, List.126):
|
||||
let List.647 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||
let List.646 : List I64 = StructAtIndex 0 List.647;
|
||||
ret List.646;
|
||||
procedure List.3 (List.127, List.128, List.129):
|
||||
let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
|
||||
let List.667 : List I64 = StructAtIndex 0 List.668;
|
||||
ret List.667;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.645;
|
||||
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.666;
|
||||
|
||||
procedure List.64 (List.121, List.122, List.123):
|
||||
let List.644 : U64 = CallByName List.6 List.121;
|
||||
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||
if List.641 then
|
||||
let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||
ret List.642;
|
||||
procedure List.64 (List.124, List.125, List.126):
|
||||
let List.665 : U64 = CallByName List.6 List.124;
|
||||
let List.662 : Int1 = CallByName Num.22 List.125 List.665;
|
||||
if List.662 then
|
||||
let List.663 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
|
||||
ret List.663;
|
||||
else
|
||||
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||
ret List.640;
|
||||
let List.661 : {List I64, I64} = Struct {List.124, List.126};
|
||||
ret List.661;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.653;
|
||||
let List.674 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.674;
|
||||
|
||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.643;
|
||||
let List.664 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.664;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
|
@ -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.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.66 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.662 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
let List.685 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.685;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.660 : U64 = 1i64;
|
||||
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||
ret List.658;
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.681 : U64 = 1i64;
|
||||
let List.680 : List U8 = CallByName List.70 List.135 List.681;
|
||||
let List.679 : List U8 = CallByName List.71 List.680 List.136;
|
||||
ret List.679;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.654;
|
||||
let List.675 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.652;
|
||||
let List.673 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.673;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.662;
|
||||
|
||||
procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.12;
|
||||
jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
||||
let List.683 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.683;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -87,93 +87,93 @@ procedure Encode.26 (Encode.107, Encode.108):
|
|||
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||
ret Encode.110;
|
||||
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.664 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.664;
|
||||
procedure List.100 (#Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
|
||||
joinpoint List.689 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.691 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.691 then
|
||||
let List.695 : Str = CallByName List.66 List.174 List.177;
|
||||
inc List.695;
|
||||
let List.179 : List U8 = CallByName Test.66 List.175 List.695 List.176;
|
||||
let List.694 : U64 = 1i64;
|
||||
let List.693 : U64 = CallByName Num.51 List.177 List.694;
|
||||
jump List.689 List.174 List.179 List.176 List.693 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.44;
|
||||
jump List.689 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
|
||||
|
||||
procedure List.100 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
|
||||
joinpoint List.662 List.174 List.175 List.176 List.177 List.178:
|
||||
let List.664 : Int1 = CallByName Num.22 List.177 List.178;
|
||||
if List.664 then
|
||||
let List.668 : [C {}, C {}, C Str] = CallByName List.66 List.174 List.177;
|
||||
inc List.668;
|
||||
let List.179 : List U8 = CallByName Test.66 List.175 List.668 List.176;
|
||||
let List.667 : U64 = 1i64;
|
||||
let List.666 : U64 = CallByName Num.51 List.177 List.667;
|
||||
jump List.662 List.174 List.179 List.176 List.666 List.178;
|
||||
else
|
||||
dec List.174;
|
||||
ret List.175;
|
||||
in
|
||||
inc #Derived_gen.49;
|
||||
jump List.662 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
|
||||
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.692;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.639 : U64 = 0i64;
|
||||
let List.640 : U64 = CallByName List.6 List.168;
|
||||
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||
ret List.638;
|
||||
|
||||
procedure List.18 (List.168, List.169, List.170):
|
||||
let List.666 : U64 = 0i64;
|
||||
let List.667 : U64 = CallByName List.6 List.168;
|
||||
let List.665 : List U8 = CallByName List.97 List.168 List.169 List.170 List.666 List.667;
|
||||
ret List.665;
|
||||
|
||||
procedure List.4 (List.132, List.133):
|
||||
let List.687 : U64 = 1i64;
|
||||
let List.686 : List U8 = CallByName List.70 List.132 List.687;
|
||||
let List.685 : List U8 = CallByName List.71 List.686 List.133;
|
||||
let List.685 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.685;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.663;
|
||||
procedure List.13 (#Attr.2, #Attr.3):
|
||||
let List.713 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||
ret List.713;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.660 : U64 = 0i64;
|
||||
let List.661 : U64 = CallByName List.6 List.171;
|
||||
let List.659 : List U8 = CallByName List.100 List.171 List.172 List.173 List.660 List.661;
|
||||
ret List.659;
|
||||
|
||||
procedure List.18 (List.171, List.172, List.173):
|
||||
let List.687 : U64 = 0i64;
|
||||
let List.688 : U64 = CallByName List.6 List.171;
|
||||
let List.686 : List U8 = CallByName List.100 List.171 List.172 List.173 List.687 List.688;
|
||||
ret List.686;
|
||||
|
||||
procedure List.4 (List.135, List.136):
|
||||
let List.708 : U64 = 1i64;
|
||||
let List.707 : List U8 = CallByName List.70 List.135 List.708;
|
||||
let List.706 : List U8 = CallByName List.71 List.707 List.136;
|
||||
ret List.706;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.690;
|
||||
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.684;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.711 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.711;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.648 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.648;
|
||||
let List.669 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.669;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.675;
|
||||
let List.696 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.696;
|
||||
|
||||
procedure List.70 (#Attr.2, #Attr.3):
|
||||
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.681;
|
||||
let List.702 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||
ret List.702;
|
||||
|
||||
procedure List.71 (#Attr.2, #Attr.3):
|
||||
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.679;
|
||||
let List.700 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||
ret List.700;
|
||||
|
||||
procedure List.8 (#Attr.2, #Attr.3):
|
||||
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.689;
|
||||
|
||||
procedure List.97 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42):
|
||||
joinpoint List.668 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.670 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.670 then
|
||||
let List.674 : Str = CallByName List.66 List.171 List.174;
|
||||
inc List.674;
|
||||
let List.176 : List U8 = CallByName Test.66 List.172 List.674 List.173;
|
||||
let List.673 : U64 = 1i64;
|
||||
let List.672 : U64 = CallByName Num.51 List.174 List.673;
|
||||
jump List.668 List.171 List.176 List.173 List.672 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.38;
|
||||
jump List.668 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
|
||||
|
||||
procedure List.97 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50):
|
||||
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||
if List.643 then
|
||||
let List.647 : [C {}, C {}, C Str] = CallByName List.66 List.171 List.174;
|
||||
inc List.647;
|
||||
let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173;
|
||||
let List.646 : U64 = 1i64;
|
||||
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||
else
|
||||
dec List.171;
|
||||
ret List.172;
|
||||
in
|
||||
inc #Derived_gen.46;
|
||||
jump List.641 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50;
|
||||
let List.710 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||
ret List.710;
|
||||
|
||||
procedure Num.127 (#Attr.2):
|
||||
let Num.286 : U8 = lowlevel NumIntCast #Attr.2;
|
||||
|
|
|
@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3):
|
|||
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
|
||||
ret Bool.23;
|
||||
|
||||
procedure List.112 (List.541, List.542, List.543):
|
||||
let List.656 : U64 = 0i64;
|
||||
let List.657 : U64 = CallByName List.6 List.541;
|
||||
let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657;
|
||||
ret List.655;
|
||||
procedure List.115 (List.562, List.563, List.564):
|
||||
let List.677 : U64 = 0i64;
|
||||
let List.678 : U64 = CallByName List.6 List.562;
|
||||
let List.676 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.677 List.678;
|
||||
ret List.676;
|
||||
|
||||
procedure List.26 (List.209, List.210, List.211):
|
||||
let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211;
|
||||
let List.652 : U8 = 1i64;
|
||||
let List.653 : U8 = GetTagId List.649;
|
||||
let List.654 : Int1 = lowlevel Eq List.652 List.653;
|
||||
if List.654 then
|
||||
let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649;
|
||||
ret List.212;
|
||||
procedure List.26 (List.212, List.213, List.214):
|
||||
let List.670 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214;
|
||||
let List.673 : U8 = 1i64;
|
||||
let List.674 : U8 = GetTagId List.670;
|
||||
let List.675 : Int1 = lowlevel Eq List.673 List.674;
|
||||
if List.675 then
|
||||
let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.670;
|
||||
ret List.215;
|
||||
else
|
||||
let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649;
|
||||
ret List.213;
|
||||
let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.670;
|
||||
ret List.216;
|
||||
|
||||
procedure List.38 (List.397, List.398):
|
||||
let List.648 : U64 = CallByName List.6 List.397;
|
||||
let List.399 : U64 = CallByName Num.77 List.648 List.398;
|
||||
let List.638 : List U8 = CallByName List.43 List.397 List.399;
|
||||
ret List.638;
|
||||
procedure List.38 (List.400, List.401):
|
||||
let List.669 : U64 = CallByName List.6 List.400;
|
||||
let List.402 : U64 = CallByName Num.77 List.669 List.401;
|
||||
let List.659 : List U8 = CallByName List.43 List.400 List.402;
|
||||
ret List.659;
|
||||
|
||||
procedure List.43 (List.395, List.396):
|
||||
let List.646 : U64 = CallByName List.6 List.395;
|
||||
let List.645 : U64 = CallByName Num.77 List.646 List.396;
|
||||
let List.640 : {U64, U64} = Struct {List.396, List.645};
|
||||
let List.639 : List U8 = CallByName List.49 List.395 List.640;
|
||||
ret List.639;
|
||||
procedure List.43 (List.398, List.399):
|
||||
let List.667 : U64 = CallByName List.6 List.398;
|
||||
let List.666 : U64 = CallByName Num.77 List.667 List.399;
|
||||
let List.661 : {U64, U64} = Struct {List.399, List.666};
|
||||
let List.660 : List U8 = CallByName List.49 List.398 List.661;
|
||||
ret List.660;
|
||||
|
||||
procedure List.49 (List.473, List.474):
|
||||
let List.642 : U64 = StructAtIndex 1 List.474;
|
||||
let List.643 : U64 = StructAtIndex 0 List.474;
|
||||
let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643;
|
||||
ret List.641;
|
||||
procedure List.49 (List.476, List.477):
|
||||
let List.663 : U64 = StructAtIndex 1 List.477;
|
||||
let List.664 : U64 = StructAtIndex 0 List.477;
|
||||
let List.662 : List U8 = CallByName List.72 List.476 List.663 List.664;
|
||||
ret List.662;
|
||||
|
||||
procedure List.6 (#Attr.2):
|
||||
let List.647 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.647;
|
||||
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||
ret List.668;
|
||||
|
||||
procedure List.66 (#Attr.2, #Attr.3):
|
||||
let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.670;
|
||||
let List.691 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||
ret List.691;
|
||||
|
||||
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
||||
let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.644;
|
||||
let List.665 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||
ret List.665;
|
||||
|
||||
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||
joinpoint List.658 List.544 List.545 List.546 List.547 List.548:
|
||||
let List.660 : Int1 = CallByName Num.22 List.547 List.548;
|
||||
if List.660 then
|
||||
let List.669 : U8 = CallByName List.66 List.544 List.547;
|
||||
let List.661 : [C U64, C U64] = CallByName Test.3 List.545 List.669;
|
||||
let List.666 : U8 = 1i64;
|
||||
let List.667 : U8 = GetTagId List.661;
|
||||
let List.668 : Int1 = lowlevel Eq List.666 List.667;
|
||||
if List.668 then
|
||||
let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661;
|
||||
let List.664 : U64 = 1i64;
|
||||
let List.663 : U64 = CallByName Num.51 List.547 List.664;
|
||||
jump List.658 List.544 List.549 List.546 List.663 List.548;
|
||||
joinpoint List.679 List.565 List.566 List.567 List.568 List.569:
|
||||
let List.681 : Int1 = CallByName Num.22 List.568 List.569;
|
||||
if List.681 then
|
||||
let List.690 : U8 = CallByName List.66 List.565 List.568;
|
||||
let List.682 : [C U64, C U64] = CallByName Test.3 List.566 List.690;
|
||||
let List.687 : U8 = 1i64;
|
||||
let List.688 : U8 = GetTagId List.682;
|
||||
let List.689 : Int1 = lowlevel Eq List.687 List.688;
|
||||
if List.689 then
|
||||
let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.682;
|
||||
let List.685 : U64 = 1i64;
|
||||
let List.684 : U64 = CallByName Num.51 List.568 List.685;
|
||||
jump List.679 List.565 List.570 List.567 List.684 List.569;
|
||||
else
|
||||
dec List.544;
|
||||
let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661;
|
||||
let List.665 : [C U64, C U64] = TagId(0) List.550;
|
||||
ret List.665;
|
||||
dec List.565;
|
||||
let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.682;
|
||||
let List.686 : [C U64, C U64] = TagId(0) List.571;
|
||||
ret List.686;
|
||||
else
|
||||
dec List.544;
|
||||
let List.659 : [C U64, C U64] = TagId(1) List.545;
|
||||
ret List.659;
|
||||
dec List.565;
|
||||
let List.680 : [C U64, C U64] = TagId(1) List.566;
|
||||
ret List.680;
|
||||
in
|
||||
inc #Derived_gen.0;
|
||||
jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||
|
||||
procedure Num.22 (#Attr.2, #Attr.3):
|
||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue