mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-02 19:32:17 +00:00
merge main
This commit is contained in:
commit
f33a483502
61 changed files with 1775 additions and 1513 deletions
|
@ -958,17 +958,58 @@ mod cli_tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg_attr(windows, ignore)]
|
#[cfg_attr(windows, ignore)]
|
||||||
fn effectful_echo() {
|
fn effectful_suffixed_record_field() {
|
||||||
build_platform_host();
|
build_platform_host();
|
||||||
|
|
||||||
let cli_build = ExecCli::new(
|
let cli_build = ExecCli::new(
|
||||||
roc_cli::CMD_DEV,
|
roc_cli::CMD_DEV,
|
||||||
file_from_root("crates/cli/tests/test-projects/effectful", "echo.roc"),
|
file_from_root(
|
||||||
|
"crates/cli/tests/test-projects/effectful",
|
||||||
|
"suffixed_record_field.roc",
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
let expected_output = " hello1 hello hell hel he h\n";
|
let expected_output = "notEffectful: hardcoded\neffectful: from stdin\n";
|
||||||
|
|
||||||
cli_build.check_build_and_run(expected_output, ALLOW_VALGRIND, Some("hello1"), None);
|
cli_build.check_build_and_run(
|
||||||
|
expected_output,
|
||||||
|
ALLOW_VALGRIND,
|
||||||
|
Some("from stdin"),
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg_attr(windows, ignore)]
|
||||||
|
fn effectful_on_err() {
|
||||||
|
build_platform_host();
|
||||||
|
|
||||||
|
let cli_build = ExecCli::new(
|
||||||
|
roc_cli::CMD_DEV,
|
||||||
|
file_from_root("crates/cli/tests/test-projects/effectful", "on_err.roc"),
|
||||||
|
);
|
||||||
|
|
||||||
|
let expected_output = "Enter your password:\nLOG: Failed login attempt\n";
|
||||||
|
|
||||||
|
cli_build.check_build_and_run(expected_output, ALLOW_VALGRIND, Some("42"), None);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg_attr(windows, ignore)]
|
||||||
|
fn effectful_for_each_try() {
|
||||||
|
build_platform_host();
|
||||||
|
|
||||||
|
let cli_build = ExecCli::new(
|
||||||
|
roc_cli::CMD_DEV,
|
||||||
|
file_from_root(
|
||||||
|
"crates/cli/tests/test-projects/effectful",
|
||||||
|
"for_each_try.roc",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
let expected_output = "✅ 0\n✅ 2\n✅ 4\n✅ 6\n✅ 8\n9 is not even! ABORT!\n";
|
||||||
|
|
||||||
|
cli_build.check_build_and_run(expected_output, ALLOW_VALGRIND, None, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
23
crates/cli/tests/test-projects/effectful/for_each_try.roc
Normal file
23
crates/cli/tests/test-projects/effectful/for_each_try.roc
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
app [main!] { pf: platform "../test-platform-effects-zig/main.roc" }
|
||||||
|
|
||||||
|
import pf.Effect
|
||||||
|
|
||||||
|
main! : {} => {}
|
||||||
|
main! = \{} ->
|
||||||
|
good = [0, 2, 4] |> List.forEachTry! validate!
|
||||||
|
expect good == Ok {}
|
||||||
|
|
||||||
|
bad = [6, 8, 9, 10] |> List.forEachTry! validate!
|
||||||
|
expect bad == Err 9
|
||||||
|
|
||||||
|
{}
|
||||||
|
|
||||||
|
validate! : U32 => Result {} U32
|
||||||
|
validate! = \x ->
|
||||||
|
if Num.isEven x then
|
||||||
|
Effect.putLine! "✅ $(Num.toStr x)"
|
||||||
|
Ok {}
|
||||||
|
|
||||||
|
else
|
||||||
|
Effect.putLine! "$(Num.toStr x) is not even! ABORT!"
|
||||||
|
Err x
|
24
crates/cli/tests/test-projects/effectful/on_err.roc
Normal file
24
crates/cli/tests/test-projects/effectful/on_err.roc
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
app [main!] { pf: platform "../test-platform-effects-zig/main.roc" }
|
||||||
|
|
||||||
|
import pf.Effect
|
||||||
|
|
||||||
|
main! : {} => {}
|
||||||
|
main! = \{} ->
|
||||||
|
_ =
|
||||||
|
authenticate! {}
|
||||||
|
|> Result.onErr! \BadPass ->
|
||||||
|
Effect.putLine! "LOG: Failed login attempt"
|
||||||
|
Ok "Bad password"
|
||||||
|
|
||||||
|
{}
|
||||||
|
|
||||||
|
authenticate! : {} => Result Str [BadPass]
|
||||||
|
authenticate! = \{} ->
|
||||||
|
Effect.putLine! "Enter your password:"
|
||||||
|
|
||||||
|
password = Effect.getLine! {}
|
||||||
|
|
||||||
|
if password == "password" then
|
||||||
|
Ok "You are in"
|
||||||
|
else
|
||||||
|
Err BadPass
|
|
@ -5,7 +5,7 @@ import pf.Effect
|
||||||
main! : {} => {}
|
main! : {} => {}
|
||||||
main! = \{} ->
|
main! = \{} ->
|
||||||
["Welcome!", "What's your name?"]
|
["Welcome!", "What's your name?"]
|
||||||
|> forEach! Effect.putLine!
|
|> List.forEach! Effect.putLine!
|
||||||
|
|
||||||
line = Effect.getLine! {}
|
line = Effect.getLine! {}
|
||||||
|
|
||||||
|
@ -17,11 +17,3 @@ main! = \{} ->
|
||||||
|
|
||||||
Effect.putLine! "You entered: $(line)"
|
Effect.putLine! "You entered: $(line)"
|
||||||
Effect.putLine! "It is known"
|
Effect.putLine! "It is known"
|
||||||
|
|
||||||
forEach! : List a, (a => {}) => {}
|
|
||||||
forEach! = \l, f! ->
|
|
||||||
when l is
|
|
||||||
[] -> {}
|
|
||||||
[x, .. as xs] ->
|
|
||||||
f! x
|
|
||||||
forEach! xs f!
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
app [main!] { pf: platform "../test-platform-effects-zig/main.roc" }
|
||||||
|
|
||||||
|
import pf.Effect
|
||||||
|
|
||||||
|
Fx : {
|
||||||
|
getLine!: {} => Str,
|
||||||
|
}
|
||||||
|
|
||||||
|
main! : {} => {}
|
||||||
|
main! = \{} ->
|
||||||
|
notEffectful : Fx
|
||||||
|
notEffectful = {
|
||||||
|
getLine!: \{} -> "hardcoded"
|
||||||
|
}
|
||||||
|
|
||||||
|
effectful : Fx
|
||||||
|
effectful = {
|
||||||
|
getLine!: Effect.getLine!
|
||||||
|
}
|
||||||
|
|
||||||
|
Effect.putLine! "notEffectful: $(notEffectful.getLine! {})"
|
||||||
|
Effect.putLine! "effectful: $(effectful.getLine! {})"
|
|
@ -73,6 +73,8 @@ module [
|
||||||
countIf,
|
countIf,
|
||||||
chunksOf,
|
chunksOf,
|
||||||
concatUtf8,
|
concatUtf8,
|
||||||
|
forEach!,
|
||||||
|
forEachTry!,
|
||||||
]
|
]
|
||||||
|
|
||||||
import Bool exposing [Bool, Eq]
|
import Bool exposing [Bool, Eq]
|
||||||
|
@ -1432,3 +1434,45 @@ iterBackwardsHelp = \list, state, f, prevIndex ->
|
||||||
concatUtf8 : List U8, Str -> List U8
|
concatUtf8 : List U8, Str -> List U8
|
||||||
|
|
||||||
expect (List.concatUtf8 [1, 2, 3, 4] "🐦") == [1, 2, 3, 4, 240, 159, 144, 166]
|
expect (List.concatUtf8 [1, 2, 3, 4] "🐦") == [1, 2, 3, 4, 240, 159, 144, 166]
|
||||||
|
|
||||||
|
## Run an effectful function for each element on the list.
|
||||||
|
##
|
||||||
|
## ```roc
|
||||||
|
## List.forEach! ["Alice", "Bob", "Charlie"] \name ->
|
||||||
|
## createAccount! name
|
||||||
|
## log! "Account created"
|
||||||
|
## ```
|
||||||
|
##
|
||||||
|
## If the function might fail or you need to return early, use [forEachTry!].
|
||||||
|
forEach! : List a, (a => {}) => {}
|
||||||
|
forEach! = \list, func! ->
|
||||||
|
when list is
|
||||||
|
[] ->
|
||||||
|
{}
|
||||||
|
|
||||||
|
[elem, .. as rest] ->
|
||||||
|
func! elem
|
||||||
|
forEach! rest func!
|
||||||
|
|
||||||
|
## Run an effectful function that might fail for each element on the list.
|
||||||
|
##
|
||||||
|
## If the function returns `Err`, the iteration stops and the error is returned.
|
||||||
|
##
|
||||||
|
## ```roc
|
||||||
|
## List.forEachTry! filesToDelete \path ->
|
||||||
|
## try File.delete! path
|
||||||
|
## Stdout.line! "$(path) deleted"
|
||||||
|
## ```
|
||||||
|
forEachTry! : List a, (a => Result {} err) => Result {} err
|
||||||
|
forEachTry! = \list, func! ->
|
||||||
|
when list is
|
||||||
|
[] ->
|
||||||
|
Ok {}
|
||||||
|
|
||||||
|
[elem, .. as rest] ->
|
||||||
|
when func! elem is
|
||||||
|
Ok {} ->
|
||||||
|
forEachTry! rest func!
|
||||||
|
|
||||||
|
Err err ->
|
||||||
|
Err err
|
||||||
|
|
|
@ -8,6 +8,7 @@ module [
|
||||||
map2,
|
map2,
|
||||||
try,
|
try,
|
||||||
onErr,
|
onErr,
|
||||||
|
onErr!,
|
||||||
withDefault,
|
withDefault,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -119,3 +120,16 @@ onErr = \result, transform ->
|
||||||
when result is
|
when result is
|
||||||
Ok v -> Ok v
|
Ok v -> Ok v
|
||||||
Err e -> transform e
|
Err e -> transform e
|
||||||
|
|
||||||
|
## Like [onErr], but it allows the transformation function to produce effects.
|
||||||
|
##
|
||||||
|
## ```roc
|
||||||
|
## Result.onErr (Err "missing user") \msg ->
|
||||||
|
## try Stdout.line! "ERROR: $(msg)"
|
||||||
|
## Err msg
|
||||||
|
## ```
|
||||||
|
onErr! : Result a err, (err => Result a otherErr) => Result a otherErr
|
||||||
|
onErr! = \result, transform! ->
|
||||||
|
when result is
|
||||||
|
Ok v -> Ok v
|
||||||
|
Err e -> transform! e
|
||||||
|
|
|
@ -2,12 +2,12 @@ use crate::env::Env;
|
||||||
use crate::procedure::{QualifiedReference, References};
|
use crate::procedure::{QualifiedReference, References};
|
||||||
use crate::scope::{PendingAbilitiesInScope, Scope, SymbolLookup};
|
use crate::scope::{PendingAbilitiesInScope, Scope, SymbolLookup};
|
||||||
use roc_collections::{ImMap, MutSet, SendMap, VecMap, VecSet};
|
use roc_collections::{ImMap, MutSet, SendMap, VecMap, VecSet};
|
||||||
use roc_module::ident::{Ident, Lowercase, TagName};
|
use roc_module::ident::{Ident, IdentSuffix, Lowercase, TagName};
|
||||||
use roc_module::symbol::Symbol;
|
use roc_module::symbol::Symbol;
|
||||||
use roc_parse::ast::{
|
use roc_parse::ast::{
|
||||||
AssignedField, ExtractSpaces, FunctionArrow, Pattern, Tag, TypeAnnotation, TypeHeader,
|
AssignedField, ExtractSpaces, FunctionArrow, Pattern, Tag, TypeAnnotation, TypeHeader,
|
||||||
};
|
};
|
||||||
use roc_problem::can::ShadowKind;
|
use roc_problem::can::{Problem, ShadowKind};
|
||||||
use roc_region::all::{Loc, Region};
|
use roc_region::all::{Loc, Region};
|
||||||
use roc_types::subs::{VarStore, Variable};
|
use roc_types::subs::{VarStore, Variable};
|
||||||
use roc_types::types::{
|
use roc_types::types::{
|
||||||
|
@ -1378,6 +1378,8 @@ fn can_assigned_fields<'a>(
|
||||||
);
|
);
|
||||||
|
|
||||||
let label = Lowercase::from(field_name.value);
|
let label = Lowercase::from(field_name.value);
|
||||||
|
check_record_field_suffix(env, label.suffix(), &field_type, &loc_field.region);
|
||||||
|
|
||||||
field_types.insert(label.clone(), RigidRequired(field_type));
|
field_types.insert(label.clone(), RigidRequired(field_type));
|
||||||
|
|
||||||
break 'inner label;
|
break 'inner label;
|
||||||
|
@ -1396,6 +1398,8 @@ fn can_assigned_fields<'a>(
|
||||||
);
|
);
|
||||||
|
|
||||||
let label = Lowercase::from(field_name.value);
|
let label = Lowercase::from(field_name.value);
|
||||||
|
check_record_field_suffix(env, label.suffix(), &field_type, &loc_field.region);
|
||||||
|
|
||||||
field_types.insert(label.clone(), RigidOptional(field_type));
|
field_types.insert(label.clone(), RigidOptional(field_type));
|
||||||
|
|
||||||
break 'inner label;
|
break 'inner label;
|
||||||
|
@ -1450,6 +1454,23 @@ fn can_assigned_fields<'a>(
|
||||||
field_types
|
field_types
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_record_field_suffix(
|
||||||
|
env: &mut Env,
|
||||||
|
suffix: IdentSuffix,
|
||||||
|
field_type: &Type,
|
||||||
|
region: &Region,
|
||||||
|
) {
|
||||||
|
match (suffix, field_type) {
|
||||||
|
(IdentSuffix::None, Type::Function(_, _, _, fx)) if **fx == Type::Effectful => env
|
||||||
|
.problems
|
||||||
|
.push(Problem::UnsuffixedEffectfulRecordField(*region)),
|
||||||
|
(IdentSuffix::Bang, Type::Function(_, _, _, fx)) if **fx == Type::Pure => {
|
||||||
|
env.problems.push(Problem::SuffixedPureRecordField(*region))
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO trim down these arguments!
|
// TODO trim down these arguments!
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
fn can_assigned_tuple_elems(
|
fn can_assigned_tuple_elems(
|
||||||
|
|
|
@ -618,15 +618,10 @@ impl Constraints {
|
||||||
Constraint::FxSuffix(constraint_index)
|
Constraint::FxSuffix(constraint_index)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fx_record_field_suffix(
|
pub fn fx_record_field_unsuffixed(&mut self, variable: Variable, region: Region) -> Constraint {
|
||||||
&mut self,
|
|
||||||
suffix: IdentSuffix,
|
|
||||||
variable: Variable,
|
|
||||||
region: Region,
|
|
||||||
) -> Constraint {
|
|
||||||
let type_index = Self::push_type_variable(variable);
|
let type_index = Self::push_type_variable(variable);
|
||||||
let constraint = FxSuffixConstraint {
|
let constraint = FxSuffixConstraint {
|
||||||
kind: FxSuffixKind::RecordField(suffix),
|
kind: FxSuffixKind::UnsuffixedRecordField,
|
||||||
type_index,
|
type_index,
|
||||||
region,
|
region,
|
||||||
};
|
};
|
||||||
|
@ -952,14 +947,14 @@ pub struct FxSuffixConstraint {
|
||||||
pub enum FxSuffixKind {
|
pub enum FxSuffixKind {
|
||||||
Let(Symbol),
|
Let(Symbol),
|
||||||
Pattern(Symbol),
|
Pattern(Symbol),
|
||||||
RecordField(IdentSuffix),
|
UnsuffixedRecordField,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FxSuffixKind {
|
impl FxSuffixKind {
|
||||||
pub fn suffix(&self) -> IdentSuffix {
|
pub fn suffix(&self) -> IdentSuffix {
|
||||||
match self {
|
match self {
|
||||||
Self::Let(symbol) | Self::Pattern(symbol) => symbol.suffix(),
|
Self::Let(symbol) | Self::Pattern(symbol) => symbol.suffix(),
|
||||||
Self::RecordField(suffix) => *suffix,
|
Self::UnsuffixedRecordField => IdentSuffix::None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ use roc_can::pattern::Pattern;
|
||||||
use roc_can::traverse::symbols_introduced_from_pattern;
|
use roc_can::traverse::symbols_introduced_from_pattern;
|
||||||
use roc_collections::all::{HumanIndex, MutMap, SendMap};
|
use roc_collections::all::{HumanIndex, MutMap, SendMap};
|
||||||
use roc_collections::VecMap;
|
use roc_collections::VecMap;
|
||||||
use roc_module::ident::Lowercase;
|
use roc_module::ident::{IdentSuffix, Lowercase};
|
||||||
use roc_module::symbol::{ModuleId, Symbol};
|
use roc_module::symbol::{ModuleId, Symbol};
|
||||||
use roc_region::all::{Loc, Region};
|
use roc_region::all::{Loc, Region};
|
||||||
use roc_types::subs::{IllegalCycleMark, Variable};
|
use roc_types::subs::{IllegalCycleMark, Variable};
|
||||||
|
@ -284,9 +284,14 @@ pub fn constrain_expr(
|
||||||
let (field_type, field_con) =
|
let (field_type, field_con) =
|
||||||
constrain_field(types, constraints, env, field_var, loc_field_expr);
|
constrain_field(types, constraints, env, field_var, loc_field_expr);
|
||||||
|
|
||||||
let check_field_con =
|
let field_con = match label.suffix() {
|
||||||
constraints.fx_record_field_suffix(label.suffix(), field_var, field.region);
|
IdentSuffix::None => {
|
||||||
let field_con = constraints.and_constraint([field_con, check_field_con]);
|
let check_field_con =
|
||||||
|
constraints.fx_record_field_unsuffixed(field_var, field.region);
|
||||||
|
constraints.and_constraint([field_con, check_field_con])
|
||||||
|
}
|
||||||
|
IdentSuffix::Bang => field_con,
|
||||||
|
};
|
||||||
|
|
||||||
field_vars.push(field_var);
|
field_vars.push(field_var);
|
||||||
field_types.insert(label.clone(), RecordField::Required(field_type));
|
field_types.insert(label.clone(), RecordField::Required(field_type));
|
||||||
|
|
|
@ -101,7 +101,7 @@ mod test_reporting {
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
let module_src = if src.starts_with("app") {
|
let module_src = if src.starts_with("app") || src.starts_with("module") {
|
||||||
maybe_save_parse_test_case(subdir, src, false);
|
maybe_save_parse_test_case(subdir, src, false);
|
||||||
// this is already a module
|
// this is already a module
|
||||||
src.to_string()
|
src.to_string()
|
||||||
|
@ -15007,33 +15007,57 @@ All branches in an `if` must have the same type!
|
||||||
);
|
);
|
||||||
|
|
||||||
test_report!(
|
test_report!(
|
||||||
suffixed_pure_in_record,
|
unsuffixed_fx_in_record_annotation,
|
||||||
indoc!(
|
indoc!(
|
||||||
r#"
|
r#"
|
||||||
app [main!] { pf: platform "../../../../../crates/cli/tests/test-projects/test-platform-effects-zig/main.roc" }
|
module [Fx]
|
||||||
|
|
||||||
import pf.Effect
|
Fx : {
|
||||||
|
getLine: {} => Str
|
||||||
main! = \{} ->
|
}
|
||||||
notFx = {
|
|
||||||
trim!: Str.trim
|
|
||||||
}
|
|
||||||
Effect.putLine! (notFx.trim! " hello ")
|
|
||||||
"#
|
"#
|
||||||
),
|
),
|
||||||
@r###"
|
@r"
|
||||||
|
── MISSING EXCLAMATION in /code/proj/Main.roc ──────────────────────────────────
|
||||||
|
|
||||||
|
The type of this record field is an effectful function, but its name
|
||||||
|
does not indicate so:
|
||||||
|
|
||||||
|
4│ getLine: {} => Str
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Add an exclamation mark at the end, like:
|
||||||
|
|
||||||
|
{ readFile!: Str => Str }
|
||||||
|
|
||||||
|
This will help readers identify it as a source of effects.
|
||||||
|
"
|
||||||
|
);
|
||||||
|
|
||||||
|
test_report!(
|
||||||
|
suffixed_pure_fn_in_record_annotation,
|
||||||
|
indoc!(
|
||||||
|
r#"
|
||||||
|
module [Fx]
|
||||||
|
|
||||||
|
Fx : {
|
||||||
|
getLine!: {} -> Str
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
),
|
||||||
|
@r"
|
||||||
── UNNECESSARY EXCLAMATION in /code/proj/Main.roc ──────────────────────────────
|
── UNNECESSARY EXCLAMATION in /code/proj/Main.roc ──────────────────────────────
|
||||||
|
|
||||||
This field's value is a pure function, but its name suggests
|
The type of this record field is a pure function, but its name
|
||||||
otherwise:
|
suggests otherwise:
|
||||||
|
|
||||||
7│ trim!: Str.trim
|
4│ getLine!: {} -> Str
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The exclamation mark at the end is reserved for effectful functions.
|
The exclamation mark at the end is reserved for effectful functions.
|
||||||
|
|
||||||
Hint: Did you forget to run an effect? Is the type annotation wrong?
|
Hint: Did you mean to use `=>` instead of `->`?
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
test_report!(
|
test_report!(
|
||||||
|
|
|
@ -5098,6 +5098,14 @@ fn canonicalize_and_constrain<'a>(
|
||||||
|
|
||||||
let mut var_store = VarStore::default();
|
let mut var_store = VarStore::default();
|
||||||
|
|
||||||
|
let fx_mode = if module_id.is_builtin() {
|
||||||
|
// Allow builtins to expose effectful functions
|
||||||
|
// even if platform is `Task`-based
|
||||||
|
FxMode::PurityInference
|
||||||
|
} else {
|
||||||
|
fx_mode
|
||||||
|
};
|
||||||
|
|
||||||
let mut module_output = canonicalize_module_defs(
|
let mut module_output = canonicalize_module_defs(
|
||||||
arena,
|
arena,
|
||||||
parsed_defs,
|
parsed_defs,
|
||||||
|
|
|
@ -1510,9 +1510,11 @@ define_builtins! {
|
||||||
88 LIST_LEN_USIZE: "lenUsize"
|
88 LIST_LEN_USIZE: "lenUsize"
|
||||||
89 LIST_CONCAT_UTF8: "concatUtf8"
|
89 LIST_CONCAT_UTF8: "concatUtf8"
|
||||||
90 LIST_WALK_FX: "walk!"
|
90 LIST_WALK_FX: "walk!"
|
||||||
91 LIST_SPLIT_AT: "splitAt"
|
90 LIST_FOR_EACH_FX: "forEach!"
|
||||||
92 LIST_SPLIT_ON: "splitOn"
|
91 LIST_FOR_EACH_TRY_FX: "forEachTry!"
|
||||||
93 LIST_SPLIT_ON_LIST: "splitOnList"
|
92 LIST_SPLIT_AT: "splitAt"
|
||||||
|
93 LIST_SPLIT_ON: "splitOn"
|
||||||
|
94 LIST_SPLIT_ON_LIST: "splitOnList"
|
||||||
}
|
}
|
||||||
7 RESULT: "Result" => {
|
7 RESULT: "Result" => {
|
||||||
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias
|
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias
|
||||||
|
@ -1525,6 +1527,7 @@ define_builtins! {
|
||||||
7 RESULT_IS_OK: "isOk"
|
7 RESULT_IS_OK: "isOk"
|
||||||
8 RESULT_MAP_BOTH: "mapBoth"
|
8 RESULT_MAP_BOTH: "mapBoth"
|
||||||
9 RESULT_MAP_TWO: "map2"
|
9 RESULT_MAP_TWO: "map2"
|
||||||
|
10 RESULT_ON_ERR_FX: "onErr!"
|
||||||
}
|
}
|
||||||
8 DICT: "Dict" => {
|
8 DICT: "Dict" => {
|
||||||
0 DICT_DICT: "Dict" exposed_type=true // the Dict.Dict type alias
|
0 DICT_DICT: "Dict" exposed_type=true // the Dict.Dict type alias
|
||||||
|
|
|
@ -252,6 +252,8 @@ pub enum Problem {
|
||||||
region: Region,
|
region: Region,
|
||||||
},
|
},
|
||||||
StmtAfterExpr(Region),
|
StmtAfterExpr(Region),
|
||||||
|
UnsuffixedEffectfulRecordField(Region),
|
||||||
|
SuffixedPureRecordField(Region),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
@ -337,6 +339,9 @@ impl Problem {
|
||||||
Problem::StatementsAfterReturn { .. } => Warning,
|
Problem::StatementsAfterReturn { .. } => Warning,
|
||||||
Problem::ReturnAtEndOfFunction { .. } => Warning,
|
Problem::ReturnAtEndOfFunction { .. } => Warning,
|
||||||
Problem::StmtAfterExpr(_) => Fatal,
|
Problem::StmtAfterExpr(_) => Fatal,
|
||||||
|
Problem::UnsuffixedEffectfulRecordField(_) | Problem::SuffixedPureRecordField(..) => {
|
||||||
|
Warning
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -502,11 +507,14 @@ impl Problem {
|
||||||
| Problem::DefsOnlyUsedInRecursion(_, region)
|
| Problem::DefsOnlyUsedInRecursion(_, region)
|
||||||
| Problem::ReturnOutsideOfFunction { region }
|
| Problem::ReturnOutsideOfFunction { region }
|
||||||
| Problem::StatementsAfterReturn { region }
|
| Problem::StatementsAfterReturn { region }
|
||||||
| Problem::ReturnAtEndOfFunction { region } => Some(*region),
|
| Problem::ReturnAtEndOfFunction { region }
|
||||||
|
| Problem::UnsuffixedEffectfulRecordField(region)
|
||||||
|
| Problem::SuffixedPureRecordField(region) => Some(*region),
|
||||||
Problem::RuntimeError(RuntimeError::CircularDef(cycle_entries))
|
Problem::RuntimeError(RuntimeError::CircularDef(cycle_entries))
|
||||||
| Problem::BadRecursion(cycle_entries) => {
|
| Problem::BadRecursion(cycle_entries) => {
|
||||||
cycle_entries.first().map(|entry| entry.expr_region)
|
cycle_entries.first().map(|entry| entry.expr_region)
|
||||||
}
|
}
|
||||||
|
|
||||||
Problem::StmtAfterExpr(region) => Some(*region),
|
Problem::StmtAfterExpr(region) => Some(*region),
|
||||||
Problem::RuntimeError(RuntimeError::UnresolvedTypeVar)
|
Problem::RuntimeError(RuntimeError::UnresolvedTypeVar)
|
||||||
| Problem::RuntimeError(RuntimeError::ErroneousType)
|
| Problem::RuntimeError(RuntimeError::ErroneousType)
|
||||||
|
|
|
@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3):
|
||||||
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
|
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
|
||||||
ret Bool.23;
|
ret Bool.23;
|
||||||
|
|
||||||
procedure List.114 (List.567, List.568, List.569):
|
procedure List.112 (List.541, List.542, List.543):
|
||||||
let List.671 : U64 = 0i64;
|
let List.656 : U64 = 0i64;
|
||||||
let List.672 : U64 = CallByName List.6 List.567;
|
let List.657 : U64 = CallByName List.6 List.541;
|
||||||
let List.670 : [C U64, C U64] = CallByName List.80 List.567 List.568 List.569 List.671 List.672;
|
let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657;
|
||||||
ret List.670;
|
ret List.655;
|
||||||
|
|
||||||
procedure List.26 (List.211, List.212, List.213):
|
procedure List.26 (List.209, List.210, List.211):
|
||||||
let List.664 : [C U64, C U64] = CallByName List.114 List.211 List.212 List.213;
|
let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211;
|
||||||
let List.667 : U8 = 1i64;
|
let List.652 : U8 = 1i64;
|
||||||
let List.668 : U8 = GetTagId List.664;
|
let List.653 : U8 = GetTagId List.649;
|
||||||
let List.669 : Int1 = lowlevel Eq List.667 List.668;
|
let List.654 : Int1 = lowlevel Eq List.652 List.653;
|
||||||
if List.669 then
|
if List.654 then
|
||||||
let List.214 : U64 = UnionAtIndex (Id 1) (Index 0) List.664;
|
let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649;
|
||||||
ret List.214;
|
ret List.212;
|
||||||
else
|
else
|
||||||
let List.215 : U64 = UnionAtIndex (Id 0) (Index 0) List.664;
|
let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649;
|
||||||
ret List.215;
|
ret List.213;
|
||||||
|
|
||||||
procedure List.38 (List.399, List.400):
|
procedure List.38 (List.397, List.398):
|
||||||
let List.663 : U64 = CallByName List.6 List.399;
|
let List.648 : U64 = CallByName List.6 List.397;
|
||||||
let List.401 : U64 = CallByName Num.77 List.663 List.400;
|
let List.399 : U64 = CallByName Num.77 List.648 List.398;
|
||||||
let List.653 : List U8 = CallByName List.43 List.399 List.401;
|
let List.638 : List U8 = CallByName List.43 List.397 List.399;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.43 (List.397, List.398):
|
procedure List.43 (List.395, List.396):
|
||||||
let List.661 : U64 = CallByName List.6 List.397;
|
let List.646 : U64 = CallByName List.6 List.395;
|
||||||
let List.660 : U64 = CallByName Num.77 List.661 List.398;
|
let List.645 : U64 = CallByName Num.77 List.646 List.396;
|
||||||
let List.655 : {U64, U64} = Struct {List.398, List.660};
|
let List.640 : {U64, U64} = Struct {List.396, List.645};
|
||||||
let List.654 : List U8 = CallByName List.49 List.397 List.655;
|
let List.639 : List U8 = CallByName List.49 List.395 List.640;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
|
|
||||||
procedure List.49 (List.475, List.476):
|
procedure List.49 (List.473, List.474):
|
||||||
let List.657 : U64 = StructAtIndex 1 List.476;
|
let List.642 : U64 = StructAtIndex 1 List.474;
|
||||||
let List.658 : U64 = StructAtIndex 0 List.476;
|
let List.643 : U64 = StructAtIndex 0 List.474;
|
||||||
let List.656 : List U8 = CallByName List.72 List.475 List.657 List.658;
|
let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.662 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.647 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.662;
|
ret List.647;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.685 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.685;
|
ret List.670;
|
||||||
|
|
||||||
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.659 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.659;
|
ret List.644;
|
||||||
|
|
||||||
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.673 List.570 List.571 List.572 List.573 List.574:
|
joinpoint List.658 List.544 List.545 List.546 List.547 List.548:
|
||||||
let List.675 : Int1 = CallByName Num.22 List.573 List.574;
|
let List.660 : Int1 = CallByName Num.22 List.547 List.548;
|
||||||
if List.675 then
|
if List.660 then
|
||||||
let List.684 : U8 = CallByName List.66 List.570 List.573;
|
let List.669 : U8 = CallByName List.66 List.544 List.547;
|
||||||
let List.676 : [C U64, C U64] = CallByName Test.4 List.571 List.684;
|
let List.661 : [C U64, C U64] = CallByName Test.4 List.545 List.669;
|
||||||
let List.681 : U8 = 1i64;
|
let List.666 : U8 = 1i64;
|
||||||
let List.682 : U8 = GetTagId List.676;
|
let List.667 : U8 = GetTagId List.661;
|
||||||
let List.683 : Int1 = lowlevel Eq List.681 List.682;
|
let List.668 : Int1 = lowlevel Eq List.666 List.667;
|
||||||
if List.683 then
|
if List.668 then
|
||||||
let List.575 : U64 = UnionAtIndex (Id 1) (Index 0) List.676;
|
let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661;
|
||||||
let List.679 : U64 = 1i64;
|
let List.664 : U64 = 1i64;
|
||||||
let List.678 : U64 = CallByName Num.51 List.573 List.679;
|
let List.663 : U64 = CallByName Num.51 List.547 List.664;
|
||||||
jump List.673 List.570 List.575 List.572 List.678 List.574;
|
jump List.658 List.544 List.549 List.546 List.663 List.548;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.576 : U64 = UnionAtIndex (Id 0) (Index 0) List.676;
|
let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661;
|
||||||
let List.680 : [C U64, C U64] = TagId(0) List.576;
|
let List.665 : [C U64, C U64] = TagId(0) List.550;
|
||||||
ret List.680;
|
ret List.665;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.674 : [C U64, C U64] = TagId(1) List.571;
|
let List.659 : [C U64, C U64] = TagId(1) List.545;
|
||||||
ret List.674;
|
ret List.659;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,51 +1,51 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.657 : U64 = 0i64;
|
let List.642 : U64 = 0i64;
|
||||||
let List.658 : U64 = CallByName List.6 List.170;
|
let List.643 : U64 = CallByName List.6 List.168;
|
||||||
let List.656 : List {} = CallByName List.99 List.170 List.171 List.172 List.657 List.658;
|
let List.641 : List {} = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.670 : {} = CallByName Test.2 List.284;
|
let List.655 : {} = CallByName Test.2 List.282;
|
||||||
let List.669 : List {} = CallByName List.71 List.283 List.670;
|
let List.654 : List {} = CallByName List.71 List.281 List.655;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
procedure List.5 (List.277, List.278):
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
let List.654 : List {} = CallByName List.68 List.281;
|
let List.639 : List {} = CallByName List.68 List.279;
|
||||||
let List.653 : List {} = CallByName List.18 List.279 List.654 List.280;
|
let List.638 : List {} = CallByName List.18 List.277 List.639 List.278;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.672 : List {} = lowlevel ListWithCapacity #Attr.2;
|
let List.657 : List {} = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.672;
|
ret List.657;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.671 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.656 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.671;
|
ret List.656;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.659 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.661 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.661 then
|
if List.646 then
|
||||||
let List.665 : [] = CallByName List.66 List.173 List.176;
|
let List.650 : [] = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : List {} = CallByName List.282 List.174 List.665 List.175;
|
let List.176 : List {} = CallByName List.280 List.172 List.650 List.173;
|
||||||
let List.664 : U64 = 1i64;
|
let List.649 : U64 = 1i64;
|
||||||
let List.663 : U64 = CallByName Num.51 List.176 List.664;
|
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||||
jump List.659 List.173 List.178 List.175 List.663 List.177;
|
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.659 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,51 +1,51 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.657 : U64 = 0i64;
|
let List.642 : U64 = 0i64;
|
||||||
let List.658 : U64 = CallByName List.6 List.170;
|
let List.643 : U64 = CallByName List.6 List.168;
|
||||||
let List.656 : List [] = CallByName List.99 List.170 List.171 List.172 List.657 List.658;
|
let List.641 : List [] = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.670 : [] = CallByName Test.2 List.284;
|
let List.655 : [] = CallByName Test.2 List.282;
|
||||||
let List.669 : List [] = CallByName List.71 List.283 List.670;
|
let List.654 : List [] = CallByName List.71 List.281 List.655;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
procedure List.5 (List.277, List.278):
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
let List.654 : List [] = CallByName List.68 List.281;
|
let List.639 : List [] = CallByName List.68 List.279;
|
||||||
let List.653 : List [] = CallByName List.18 List.279 List.654 List.280;
|
let List.638 : List [] = CallByName List.18 List.277 List.639 List.278;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.651 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.672 : List [] = lowlevel ListWithCapacity #Attr.2;
|
let List.657 : List [] = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.672;
|
ret List.657;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.671 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.656 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.671;
|
ret List.656;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.659 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.661 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.661 then
|
if List.646 then
|
||||||
let List.665 : [] = CallByName List.66 List.173 List.176;
|
let List.650 : [] = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : List [] = CallByName List.282 List.174 List.665 List.175;
|
let List.176 : List [] = CallByName List.280 List.172 List.650 List.173;
|
||||||
let List.664 : U64 = 1i64;
|
let List.649 : U64 = 1i64;
|
||||||
let List.663 : U64 = CallByName Num.51 List.176 List.664;
|
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||||
jump List.659 List.173 List.178 List.175 List.663 List.177;
|
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.659 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : [<r>C {}, C *self {{}, []}] = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : [<r>C {}, C *self {{}, []}] = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : [] = CallByName List.66 List.173 List.176;
|
let List.647 : [] = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.174 List.662 List.175;
|
let List.176 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.13;
|
inc #Derived_gen.13;
|
||||||
jump List.656 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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;
|
let Bool.24 : Int1 = false;
|
||||||
ret Bool.24;
|
ret Bool.24;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.673 : U64 = 0i64;
|
let List.658 : U64 = 0i64;
|
||||||
let List.674 : U64 = CallByName List.6 List.170;
|
let List.659 : U64 = CallByName List.6 List.168;
|
||||||
let List.672 : List Str = CallByName List.99 List.170 List.171 List.172 List.673 List.674;
|
let List.657 : List Str = CallByName List.97 List.168 List.169 List.170 List.658 List.659;
|
||||||
ret List.672;
|
ret List.657;
|
||||||
|
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.667 : U64 = CallByName List.6 List.118;
|
let List.652 : U64 = CallByName List.6 List.116;
|
||||||
let List.663 : Int1 = CallByName Num.22 List.119 List.667;
|
let List.648 : Int1 = CallByName Num.22 List.117 List.652;
|
||||||
if List.663 then
|
if List.648 then
|
||||||
let List.665 : Str = CallByName List.66 List.118 List.119;
|
let List.650 : Str = CallByName List.66 List.116 List.117;
|
||||||
inc List.665;
|
inc List.650;
|
||||||
let List.664 : [C {}, C Str] = TagId(1) List.665;
|
let List.649 : [C {}, C Str] = TagId(1) List.650;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
else
|
else
|
||||||
let List.662 : {} = Struct {};
|
let List.647 : {} = Struct {};
|
||||||
let List.661 : [C {}, C Str] = TagId(0) List.662;
|
let List.646 : [C {}, C Str] = TagId(0) List.647;
|
||||||
ret List.661;
|
ret List.646;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.686 : Str = CallByName Test.10 List.284;
|
let List.671 : Str = CallByName Test.10 List.282;
|
||||||
let List.685 : List Str = CallByName List.71 List.283 List.686;
|
let List.670 : List Str = CallByName List.71 List.281 List.671;
|
||||||
ret List.685;
|
ret List.670;
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
procedure List.5 (List.277, List.278):
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
let List.670 : List Str = CallByName List.68 List.281;
|
let List.655 : List Str = CallByName List.68 List.279;
|
||||||
let List.669 : List Str = CallByName List.18 List.279 List.670 List.280;
|
let List.654 : List Str = CallByName List.18 List.277 List.655 List.278;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
|
procedure List.6 (#Attr.2):
|
||||||
|
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.653;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.668;
|
ret List.668;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.683 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.651 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.683;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : Str = lowlevel ListGetUnsafe #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.666;
|
ret List.667;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.682 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.682;
|
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.688 : List Str = lowlevel ListWithCapacity #Attr.2;
|
let List.673 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.688;
|
ret List.673;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.687 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.672 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.687;
|
ret List.672;
|
||||||
|
|
||||||
procedure List.9 (List.390):
|
procedure List.9 (List.388):
|
||||||
let List.660 : U64 = 0i64;
|
let List.645 : U64 = 0i64;
|
||||||
let List.653 : [C {}, C Str] = CallByName List.2 List.390 List.660;
|
let List.638 : [C {}, C Str] = CallByName List.2 List.388 List.645;
|
||||||
let List.657 : U8 = 1i64;
|
let List.642 : U8 = 1i64;
|
||||||
let List.658 : U8 = GetTagId List.653;
|
let List.643 : U8 = GetTagId List.638;
|
||||||
let List.659 : Int1 = lowlevel Eq List.657 List.658;
|
let List.644 : Int1 = lowlevel Eq List.642 List.643;
|
||||||
if List.659 then
|
if List.644 then
|
||||||
let List.391 : Str = UnionAtIndex (Id 1) (Index 0) List.653;
|
let List.389 : Str = UnionAtIndex (Id 1) (Index 0) List.638;
|
||||||
let List.654 : [C {}, C Str] = TagId(1) List.391;
|
let List.639 : [C {}, C Str] = TagId(1) List.389;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
else
|
else
|
||||||
dec List.653;
|
dec List.638;
|
||||||
let List.656 : {} = Struct {};
|
let List.641 : {} = Struct {};
|
||||||
let List.655 : [C {}, C Str] = TagId(0) List.656;
|
let List.640 : [C {}, C Str] = TagId(0) List.641;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.675 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.660 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.677 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.662 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.677 then
|
if List.662 then
|
||||||
let List.681 : [<r>C List [<r>C List *self, C *self], C [<r>C List *self, C *self]] = CallByName List.66 List.173 List.176;
|
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.681;
|
inc List.666;
|
||||||
let List.178 : List Str = CallByName List.282 List.174 List.681 List.175;
|
let List.176 : List Str = CallByName List.280 List.172 List.666 List.173;
|
||||||
let List.680 : U64 = 1i64;
|
let List.665 : U64 = 1i64;
|
||||||
let List.679 : U64 = CallByName Num.51 List.176 List.680;
|
let List.664 : U64 = CallByName Num.51 List.174 List.665;
|
||||||
jump List.675 List.173 List.178 List.175 List.679 List.177;
|
jump List.660 List.171 List.176 List.173 List.664 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.675 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.660 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
@ -97,17 +97,17 @@ procedure Num.51 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
let Num.283 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
||||||
ret Num.283;
|
ret Num.283;
|
||||||
|
|
||||||
procedure Result.5 (Result.13, Result.14):
|
procedure Result.5 (Result.14, Result.15):
|
||||||
let Result.57 : U8 = 1i64;
|
let Result.63 : U8 = 1i64;
|
||||||
let Result.58 : U8 = GetTagId Result.13;
|
let Result.64 : U8 = GetTagId Result.14;
|
||||||
let Result.59 : Int1 = lowlevel Eq Result.57 Result.58;
|
let Result.65 : Int1 = lowlevel Eq Result.63 Result.64;
|
||||||
if Result.59 then
|
if Result.65 then
|
||||||
dec Result.14;
|
dec Result.15;
|
||||||
let Result.15 : Str = UnionAtIndex (Id 1) (Index 0) Result.13;
|
let Result.16 : Str = UnionAtIndex (Id 1) (Index 0) Result.14;
|
||||||
ret Result.15;
|
ret Result.16;
|
||||||
else
|
else
|
||||||
dec Result.13;
|
dec Result.14;
|
||||||
ret Result.14;
|
ret Result.15;
|
||||||
|
|
||||||
procedure Test.10 (Test.11):
|
procedure Test.10 (Test.11):
|
||||||
let Test.12 : Str = CallByName Test.2 Test.11;
|
let Test.12 : Str = CallByName Test.2 Test.11;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure Test.1 (Test.5):
|
procedure Test.1 (Test.5):
|
||||||
let Test.2 : I64 = 41i64;
|
let Test.2 : I64 = 41i64;
|
||||||
|
|
|
@ -2,35 +2,35 @@ procedure Bool.2 ():
|
||||||
let Bool.23 : Int1 = true;
|
let Bool.23 : Int1 = true;
|
||||||
ret Bool.23;
|
ret Bool.23;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
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.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
procedure List.97 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Int1 = CallByName List.66 List.173 List.176;
|
let List.647 : Int1 = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.174 List.662 List.175;
|
let List.176 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.3;
|
inc #Derived_gen.7;
|
||||||
jump List.656 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
jump List.641 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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):
|
procedure Test.1 (Test.5):
|
||||||
ret Test.5;
|
ret Test.5;
|
||||||
|
|
||||||
procedure Test.11 (#Derived_gen.8, #Derived_gen.9):
|
procedure Test.11 (#Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint Test.27 Test.12 #Attr.12:
|
joinpoint Test.27 Test.12 #Attr.12:
|
||||||
let Test.34 : Int1 = UnionAtIndex (Id 2) (Index 1) #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;
|
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.8, #Derived_gen.9):
|
||||||
decref #Attr.12;
|
decref #Attr.12;
|
||||||
jump #Derived_gen.12;
|
jump #Derived_gen.12;
|
||||||
in
|
in
|
||||||
jump Test.27 #Derived_gen.8 #Derived_gen.9;
|
jump Test.27 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Test.2 (Test.13):
|
procedure Test.2 (Test.13):
|
||||||
ret 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;
|
ret Dict.743;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure Num.75 (#Attr.2, #Attr.3):
|
procedure Num.75 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : U8 = lowlevel NumSubWrap #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;
|
let Bool.23 : Int1 = false;
|
||||||
ret Bool.23;
|
ret Bool.23;
|
||||||
|
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.659 : U64 = CallByName List.6 List.118;
|
let List.644 : U64 = CallByName List.6 List.116;
|
||||||
let List.655 : Int1 = CallByName Num.22 List.119 List.659;
|
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||||
if List.655 then
|
if List.640 then
|
||||||
let List.657 : {} = CallByName List.66 List.118 List.119;
|
let List.642 : {} = CallByName List.66 List.116 List.117;
|
||||||
let List.656 : [C {}, C {}] = TagId(1) List.657;
|
let List.641 : [C {}, C {}] = TagId(1) List.642;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
else
|
else
|
||||||
let List.654 : {} = Struct {};
|
let List.639 : {} = Struct {};
|
||||||
let List.653 : [C {}, C {}] = TagId(0) List.654;
|
let List.638 : [C {}, C {}] = TagId(0) List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.660;
|
ret List.645;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.658 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.643 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : Int1 = lowlevel NumLt #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.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.656 : U64 = 1i64;
|
let List.641 : U64 = 1i64;
|
||||||
let List.654 : List U8 = CallByName List.70 List.134 List.656;
|
let List.639 : List U8 = CallByName List.70 List.132 List.641;
|
||||||
let List.653 : List U8 = CallByName List.71 List.654 List.135;
|
let List.638 : List U8 = CallByName List.71 List.639 List.133;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.657 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.655 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure Test.23 (Test.24, Test.35, Test.22):
|
procedure Test.23 (Test.24, Test.35, Test.22):
|
||||||
let Test.37 : List U8 = CallByName List.4 Test.24 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;
|
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.680 : U64 = 0i64;
|
let List.665 : U64 = 0i64;
|
||||||
let List.681 : U64 = CallByName List.6 List.170;
|
let List.666 : U64 = CallByName List.6 List.168;
|
||||||
let List.679 : List U8 = CallByName List.99 List.170 List.171 List.172 List.680 List.681;
|
let List.664 : List U8 = CallByName List.97 List.168 List.169 List.170 List.665 List.666;
|
||||||
ret List.679;
|
ret List.664;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.701 : U64 = 1i64;
|
let List.686 : U64 = 1i64;
|
||||||
let List.700 : List U8 = CallByName List.70 List.134 List.701;
|
let List.685 : List U8 = CallByName List.70 List.132 List.686;
|
||||||
let List.699 : List U8 = CallByName List.71 List.700 List.135;
|
let List.684 : List U8 = CallByName List.71 List.685 List.133;
|
||||||
ret List.699;
|
ret List.684;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.704 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.704;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
ret List.663;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.6 (#Attr.2):
|
||||||
let List.689 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.689;
|
ret List.689;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.648;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.674 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.674;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.695 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.680 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.695;
|
ret List.680;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.693 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.678 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.693;
|
ret List.678;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.703 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.688 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.703;
|
ret List.688;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
|
procedure List.97 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.71 List.174 List.662;
|
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.26;
|
inc #Derived_gen.29;
|
||||||
jump List.656 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
|
jump List.641 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41):
|
procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
|
||||||
joinpoint List.682 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.667 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.684 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.669 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.684 then
|
if List.669 then
|
||||||
let List.688 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.673 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.688;
|
inc List.673;
|
||||||
let List.178 : List U8 = CallByName Test.71 List.174 List.688;
|
let List.176 : List U8 = CallByName Test.71 List.172 List.673;
|
||||||
let List.687 : U64 = 1i64;
|
let List.672 : U64 = 1i64;
|
||||||
let List.686 : U64 = CallByName Num.51 List.176 List.687;
|
let List.671 : U64 = CallByName Num.51 List.174 List.672;
|
||||||
jump List.682 List.173 List.178 List.175 List.686 List.177;
|
jump List.667 List.171 List.176 List.173 List.671 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.37;
|
inc #Derived_gen.40;
|
||||||
jump List.682 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41;
|
jump List.667 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.286 : U8 = lowlevel NumIntCast #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;
|
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : List U8 = CallByName List.70 List.134 List.675;
|
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||||
let List.673 : List U8 = CallByName List.71 List.674 List.135;
|
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
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):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
|
procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.71 List.174 List.662;
|
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.10;
|
inc #Derived_gen.16;
|
||||||
jump List.656 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
|
jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #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;
|
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : List U8 = CallByName List.70 List.134 List.675;
|
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||||
let List.673 : List U8 = CallByName List.71 List.674 List.135;
|
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
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):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
procedure List.97 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.71 List.174 List.662;
|
let List.176 : List U8 = CallByName Test.71 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.14;
|
inc #Derived_gen.20;
|
||||||
jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
jump List.641 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #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;
|
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.663 : U64 = 1i64;
|
let List.648 : U64 = 1i64;
|
||||||
let List.662 : List U8 = CallByName List.70 List.134 List.663;
|
let List.647 : List U8 = CallByName List.70 List.132 List.648;
|
||||||
let List.661 : List U8 = CallByName List.71 List.662 List.135;
|
let List.646 : List U8 = CallByName List.71 List.647 List.133;
|
||||||
ret List.661;
|
ret List.646;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.657 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.642 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.655 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.640 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.665 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.650 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.665;
|
ret List.650;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||||
|
|
|
@ -41,57 +41,57 @@ procedure Encode.26 (Encode.107, Encode.108):
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.13 (#Attr.2, #Attr.3):
|
procedure List.13 (#Attr.2, #Attr.3):
|
||||||
let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||||
ret List.679;
|
ret List.664;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : List U8 = CallByName List.70 List.134 List.675;
|
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||||
let List.673 : List U8 = CallByName List.71 List.674 List.135;
|
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
ret List.663;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.648;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26):
|
procedure List.97 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.64 List.174 List.662 List.175;
|
let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.22;
|
inc #Derived_gen.13;
|
||||||
jump List.656 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26;
|
jump List.641 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||||
|
|
|
@ -44,57 +44,57 @@ procedure Encode.26 (Encode.107, Encode.108):
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.13 (#Attr.2, #Attr.3):
|
procedure List.13 (#Attr.2, #Attr.3):
|
||||||
let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||||
ret List.679;
|
ret List.664;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : List U8 = CallByName List.70 List.134 List.675;
|
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||||
let List.673 : List U8 = CallByName List.71 List.674 List.135;
|
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
ret List.663;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.648;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.64 List.174 List.662 List.175;
|
let List.176 : List U8 = CallByName Test.64 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.14;
|
inc #Derived_gen.14;
|
||||||
jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||||
|
|
|
@ -145,7 +145,7 @@ procedure Dict.43 (Dict.126):
|
||||||
let Dict.1101 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Inspect.30 Dict.126;
|
let Dict.1101 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Inspect.30 Dict.126;
|
||||||
ret Dict.1101;
|
ret Dict.1101;
|
||||||
|
|
||||||
procedure Dict.45 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45):
|
procedure Dict.45 (#Derived_gen.45, #Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
|
||||||
joinpoint Dict.744 Dict.228 Dict.229 Dict.230 Dict.231 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236:
|
joinpoint Dict.744 Dict.228 Dict.229 Dict.230 Dict.231 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236:
|
||||||
let Dict.237 : {U32, U32} = CallByName Dict.22 Dict.228 Dict.230;
|
let Dict.237 : {U32, U32} = CallByName Dict.22 Dict.228 Dict.230;
|
||||||
let Dict.791 : U32 = StructAtIndex 1 Dict.237;
|
let Dict.791 : U32 = StructAtIndex 1 Dict.237;
|
||||||
|
@ -188,8 +188,8 @@ procedure Dict.45 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39, #Derived_g
|
||||||
let Dict.246 : U32 = CallByName Dict.55 Dict.231;
|
let Dict.246 : U32 = CallByName Dict.55 Dict.231;
|
||||||
jump Dict.744 Dict.228 Dict.229 Dict.245 Dict.246 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236;
|
jump Dict.744 Dict.228 Dict.229 Dict.245 Dict.246 Dict.232 Dict.233 Dict.234 Dict.235 Dict.236;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.41;
|
inc #Derived_gen.49;
|
||||||
jump Dict.744 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45;
|
jump Dict.744 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
|
||||||
|
|
||||||
procedure Dict.48 ():
|
procedure Dict.48 ():
|
||||||
let Dict.868 : U32 = 0i64;
|
let Dict.868 : U32 = 0i64;
|
||||||
|
@ -322,7 +322,7 @@ procedure Dict.73 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||||
inc #Derived_gen.16;
|
inc #Derived_gen.16;
|
||||||
jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
jump Dict.855 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||||
|
|
||||||
procedure Dict.74 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
|
procedure Dict.74 (#Derived_gen.54, #Derived_gen.55, #Derived_gen.56):
|
||||||
joinpoint Dict.761 Dict.422 Dict.423 Dict.424:
|
joinpoint Dict.761 Dict.422 Dict.423 Dict.424:
|
||||||
let Dict.425 : {U32, U32} = CallByName Dict.22 Dict.422 Dict.424;
|
let Dict.425 : {U32, U32} = CallByName Dict.22 Dict.422 Dict.424;
|
||||||
let Dict.771 : U32 = StructAtIndex 1 Dict.425;
|
let Dict.771 : U32 = StructAtIndex 1 Dict.425;
|
||||||
|
@ -341,7 +341,7 @@ procedure Dict.74 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48):
|
||||||
let Dict.762 : List {U32, U32} = CallByName List.3 Dict.422 Dict.424 Dict.423;
|
let Dict.762 : List {U32, U32} = CallByName List.3 Dict.422 Dict.424 Dict.423;
|
||||||
ret Dict.762;
|
ret Dict.762;
|
||||||
in
|
in
|
||||||
jump Dict.761 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48;
|
jump Dict.761 #Derived_gen.54 #Derived_gen.55 #Derived_gen.56;
|
||||||
|
|
||||||
procedure Dict.75 (Dict.427, Dict.428):
|
procedure Dict.75 (Dict.427, Dict.428):
|
||||||
let Dict.757 : U64 = 1i64;
|
let Dict.757 : U64 = 1i64;
|
||||||
|
@ -890,171 +890,171 @@ procedure Inspect.63 (Inspect.300, Inspect.296):
|
||||||
procedure Inspect.64 (Inspect.302):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.100 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
|
procedure List.11 (List.146, List.147):
|
||||||
joinpoint List.695 List.182 List.183 List.184 List.185 List.186:
|
let List.700 : List {U32, U32} = CallByName List.68 List.147;
|
||||||
let List.697 : Int1 = CallByName Num.22 List.185 List.186;
|
let List.699 : List {U32, U32} = CallByName List.95 List.146 List.147 List.700;
|
||||||
if List.697 then
|
ret List.699;
|
||||||
let List.701 : {Str, I64} = CallByName List.66 List.182 List.185;
|
|
||||||
inc List.701;
|
|
||||||
let List.187 : List {U32, U32} = CallByName Dict.406 List.183 List.701 List.185 List.184;
|
|
||||||
let List.700 : U64 = 1i64;
|
|
||||||
let List.699 : U64 = CallByName Num.51 List.185 List.700;
|
|
||||||
jump List.695 List.182 List.187 List.184 List.699 List.186;
|
|
||||||
else
|
|
||||||
dec List.182;
|
|
||||||
ret List.183;
|
|
||||||
in
|
|
||||||
inc #Derived_gen.28;
|
|
||||||
jump List.695 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
|
|
||||||
|
|
||||||
procedure List.11 (List.148, List.149):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.715 : List {U32, U32} = CallByName List.68 List.149;
|
let List.639 : U64 = 0i64;
|
||||||
let List.714 : List {U32, U32} = CallByName List.97 List.148 List.149 List.715;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
ret List.714;
|
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.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.703 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.704 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.702 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.703 List.704;
|
||||||
ret List.653;
|
ret List.702;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.3 (List.124, List.125, List.126):
|
||||||
let List.718 : U64 = 0i64;
|
let List.664 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.124 List.125 List.126;
|
||||||
let List.719 : U64 = CallByName List.6 List.170;
|
let List.663 : List {U32, U32} = StructAtIndex 0 List.664;
|
||||||
let List.717 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.718 List.719;
|
ret List.663;
|
||||||
ret List.717;
|
|
||||||
|
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
procedure List.3 (List.124, List.125, List.126):
|
||||||
let List.679 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.126 List.127 List.128;
|
let List.666 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.124 List.125 List.126;
|
||||||
let List.678 : List {U32, U32} = StructAtIndex 0 List.679;
|
let List.665 : List {Str, I64} = StructAtIndex 0 List.666;
|
||||||
ret List.678;
|
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.666;
|
||||||
|
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
|
||||||
let List.681 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.126 List.127 List.128;
|
|
||||||
let List.680 : List {Str, I64} = StructAtIndex 0 List.681;
|
|
||||||
let #Derived_gen.71 : {Str, I64} = StructAtIndex 1 List.681;
|
|
||||||
dec #Derived_gen.71;
|
dec #Derived_gen.71;
|
||||||
ret List.680;
|
ret List.665;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.690 : U64 = 1i64;
|
let List.675 : U64 = 1i64;
|
||||||
let List.688 : List {Str, I64} = CallByName List.70 List.134 List.690;
|
let List.673 : List {Str, I64} = CallByName List.70 List.132 List.675;
|
||||||
let List.687 : List {Str, I64} = CallByName List.71 List.688 List.135;
|
let List.672 : List {Str, I64} = CallByName List.71 List.673 List.133;
|
||||||
ret List.687;
|
ret List.672;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.669 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.654 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.701 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.716;
|
ret List.701;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.728 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.713 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.728;
|
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
|
||||||
let List.677 : U64 = CallByName List.6 List.123;
|
|
||||||
let List.674 : Int1 = CallByName Num.22 List.124 List.677;
|
|
||||||
if List.674 then
|
|
||||||
let List.675 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.123 List.124 List.125;
|
|
||||||
ret List.675;
|
|
||||||
else
|
|
||||||
let List.673 : {List {U32, U32}, {U32, U32}} = Struct {List.123, List.125};
|
|
||||||
ret List.673;
|
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
|
||||||
let List.686 : U64 = CallByName List.6 List.123;
|
|
||||||
let List.683 : Int1 = CallByName Num.22 List.124 List.686;
|
|
||||||
if List.683 then
|
|
||||||
let List.684 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.123 List.124 List.125;
|
|
||||||
ret List.684;
|
|
||||||
else
|
|
||||||
let List.682 : {List {Str, I64}, {Str, I64}} = Struct {List.123, List.125};
|
|
||||||
ret List.682;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.727 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.727;
|
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
|
||||||
let List.676 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
|
||||||
ret List.676;
|
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
|
||||||
let List.685 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
|
||||||
ret List.685;
|
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
|
||||||
let List.713 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
|
|
||||||
ret List.713;
|
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):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.691 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.676 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.691;
|
ret List.676;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.689 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.674 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.689;
|
ret List.674;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.710 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.695 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.710;
|
ret List.695;
|
||||||
|
|
||||||
procedure List.83 (List.179, List.180, List.181):
|
procedure List.83 (List.177, List.178, List.179):
|
||||||
let List.693 : U64 = 0i64;
|
let List.678 : U64 = 0i64;
|
||||||
let List.694 : U64 = CallByName List.6 List.179;
|
let List.679 : U64 = CallByName List.6 List.177;
|
||||||
let List.692 : List {U32, U32} = CallByName List.100 List.179 List.180 List.181 List.693 List.694;
|
let List.677 : List {U32, U32} = CallByName List.98 List.177 List.178 List.179 List.678 List.679;
|
||||||
ret List.692;
|
ret List.677;
|
||||||
|
|
||||||
procedure List.97 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
|
procedure List.95 (#Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
|
||||||
joinpoint List.704 List.150 List.151 List.152:
|
joinpoint List.689 List.148 List.149 List.150:
|
||||||
let List.712 : U64 = 0i64;
|
let List.697 : U64 = 0i64;
|
||||||
let List.706 : Int1 = CallByName Num.24 List.151 List.712;
|
let List.691 : Int1 = CallByName Num.24 List.149 List.697;
|
||||||
if List.706 then
|
if List.691 then
|
||||||
let List.711 : U64 = 1i64;
|
let List.696 : U64 = 1i64;
|
||||||
let List.708 : U64 = CallByName Num.75 List.151 List.711;
|
let List.693 : U64 = CallByName Num.75 List.149 List.696;
|
||||||
let List.709 : List {U32, U32} = CallByName List.71 List.152 List.150;
|
let List.694 : List {U32, U32} = CallByName List.71 List.150 List.148;
|
||||||
jump List.704 List.150 List.708 List.709;
|
jump List.689 List.148 List.693 List.694;
|
||||||
else
|
else
|
||||||
ret List.152;
|
ret List.150;
|
||||||
in
|
in
|
||||||
jump List.704 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
|
jump List.689 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.56, #Derived_gen.57, #Derived_gen.58, #Derived_gen.59, #Derived_gen.60):
|
procedure List.97 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, I64} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, I64} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.174 List.662;
|
let List.176 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.56;
|
inc #Derived_gen.26;
|
||||||
jump List.656 #Derived_gen.56 #Derived_gen.57 #Derived_gen.58 #Derived_gen.59 #Derived_gen.60;
|
jump List.641 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65):
|
procedure List.97 (#Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43, #Derived_gen.44):
|
||||||
joinpoint List.720 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.705 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.722 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.707 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.722 then
|
if List.707 then
|
||||||
let List.726 : {Str, I64} = CallByName List.66 List.173 List.176;
|
let List.711 : {Str, I64} = CallByName List.66 List.171 List.174;
|
||||||
inc List.726;
|
inc List.711;
|
||||||
let List.178 : {Str, Int1} = CallByName Dict.188 List.174 List.726 List.175;
|
let List.176 : {Str, Int1} = CallByName Dict.188 List.172 List.711 List.173;
|
||||||
let List.725 : U64 = 1i64;
|
let List.710 : U64 = 1i64;
|
||||||
let List.724 : U64 = CallByName Num.51 List.176 List.725;
|
let List.709 : U64 = CallByName Num.51 List.174 List.710;
|
||||||
jump List.720 List.173 List.178 List.175 List.724 List.177;
|
jump List.705 List.171 List.176 List.173 List.709 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
|
in
|
||||||
|
inc #Derived_gen.40;
|
||||||
|
jump List.705 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44;
|
||||||
|
|
||||||
|
procedure List.98 (#Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64, #Derived_gen.65):
|
||||||
|
joinpoint List.680 List.180 List.181 List.182 List.183 List.184:
|
||||||
|
let List.682 : Int1 = CallByName Num.22 List.183 List.184;
|
||||||
|
if List.682 then
|
||||||
|
let List.686 : {Str, I64} = CallByName List.66 List.180 List.183;
|
||||||
|
inc List.686;
|
||||||
|
let List.185 : List {U32, U32} = CallByName Dict.406 List.181 List.686 List.183 List.182;
|
||||||
|
let List.685 : U64 = 1i64;
|
||||||
|
let List.684 : U64 = CallByName Num.51 List.183 List.685;
|
||||||
|
jump List.680 List.180 List.185 List.182 List.684 List.184;
|
||||||
|
else
|
||||||
|
dec List.180;
|
||||||
|
ret List.181;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.61;
|
inc #Derived_gen.61;
|
||||||
jump List.720 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65;
|
jump List.680 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64 #Derived_gen.65;
|
||||||
|
|
||||||
procedure Num.131 (#Attr.2):
|
procedure Num.131 (#Attr.2):
|
||||||
let Num.289 : U32 = lowlevel NumIntCast #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
|
procedure List.97 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : I64 = CallByName List.66 List.173 List.176;
|
let List.647 : I64 = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.160 List.174 List.662 List.175;
|
let List.176 : {Str, Int1} = CallByName Inspect.160 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.13;
|
inc #Derived_gen.8;
|
||||||
jump List.656 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
|
jump List.641 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.666 : U64 = 0i64;
|
let List.651 : U64 = 0i64;
|
||||||
let List.667 : U64 = CallByName List.6 List.170;
|
let List.652 : U64 = CallByName List.6 List.168;
|
||||||
let List.665 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.666 List.667;
|
let List.650 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.651 List.652;
|
||||||
ret List.665;
|
ret List.650;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.661 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.676;
|
ret List.661;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.660 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.675;
|
ret List.660;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
|
procedure List.97 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662;
|
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.28;
|
inc #Derived_gen.28;
|
||||||
jump List.656 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
|
jump List.641 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38, #Derived_gen.39):
|
procedure List.97 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37):
|
||||||
joinpoint List.668 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.653 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.670 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.655 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.670 then
|
if List.655 then
|
||||||
let List.674 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.659 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.674;
|
inc List.659;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.674;
|
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.659;
|
||||||
let List.673 : U64 = 1i64;
|
let List.658 : U64 = 1i64;
|
||||||
let List.672 : U64 = CallByName Num.51 List.176 List.673;
|
let List.657 : U64 = CallByName Num.51 List.174 List.658;
|
||||||
jump List.668 List.173 List.178 List.175 List.672 List.177;
|
jump List.653 List.171 List.176 List.173 List.657 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.35;
|
inc #Derived_gen.33;
|
||||||
jump List.668 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38 #Derived_gen.39;
|
jump List.653 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.284 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
|
procedure List.97 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {[C I64, C Decimal], Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {[C I64, C Decimal], Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662;
|
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.26;
|
inc #Derived_gen.14;
|
||||||
jump List.656 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
|
jump List.641 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.284 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
|
procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662;
|
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.14;
|
inc #Derived_gen.12;
|
||||||
jump List.656 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
|
jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : {Str, Int1} = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : {Str, Int1} = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
|
procedure List.97 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : {Str, Str} = CallByName List.66 List.173 List.176;
|
let List.647 : {Str, Str} = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : {Str, Int1} = CallByName Inspect.233 List.174 List.662;
|
let List.176 : {Str, Int1} = CallByName Inspect.233 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.18;
|
inc #Derived_gen.16;
|
||||||
jump List.656 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
|
jump List.641 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.1 (List.117):
|
procedure List.1 (List.115):
|
||||||
let List.666 : U64 = CallByName List.6 List.117;
|
let List.651 : U64 = CallByName List.6 List.115;
|
||||||
let List.667 : U64 = 0i64;
|
let List.652 : U64 = 0i64;
|
||||||
let List.665 : Int1 = CallByName Bool.11 List.666 List.667;
|
let List.650 : Int1 = CallByName Bool.11 List.651 List.652;
|
||||||
ret List.665;
|
ret List.650;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : Str = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
procedure List.97 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : Str = CallByName Inspect.210 List.174 List.662;
|
let List.176 : Str = CallByName Inspect.210 List.172 List.647;
|
||||||
dec List.662;
|
dec List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.12;
|
inc #Derived_gen.10;
|
||||||
jump List.656 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
jump List.641 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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):
|
procedure Inspect.64 (Inspect.302):
|
||||||
ret Inspect.302;
|
ret Inspect.302;
|
||||||
|
|
||||||
procedure List.1 (List.117):
|
procedure List.1 (List.115):
|
||||||
let List.666 : U64 = CallByName List.6 List.117;
|
let List.651 : U64 = CallByName List.6 List.115;
|
||||||
let List.667 : U64 = 0i64;
|
let List.652 : U64 = 0i64;
|
||||||
let List.665 : Int1 = CallByName Bool.11 List.666 List.667;
|
let List.650 : Int1 = CallByName Bool.11 List.651 List.652;
|
||||||
ret List.665;
|
ret List.650;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : Str = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : Str = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
|
procedure List.97 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : Str = CallByName Inspect.210 List.174 List.662;
|
let List.176 : Str = CallByName Inspect.210 List.172 List.647;
|
||||||
dec List.662;
|
dec List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.17;
|
inc #Derived_gen.15;
|
||||||
jump List.656 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
|
jump List.641 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure Num.19 (#Attr.2, #Attr.3):
|
procedure Num.19 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : U64 = lowlevel NumAdd #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;
|
let Bool.23 : Int1 = true;
|
||||||
ret Bool.23;
|
ret Bool.23;
|
||||||
|
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.667 : U64 = CallByName List.6 List.118;
|
let List.652 : U64 = CallByName List.6 List.116;
|
||||||
let List.663 : Int1 = CallByName Num.22 List.119 List.667;
|
let List.648 : Int1 = CallByName Num.22 List.117 List.652;
|
||||||
if List.663 then
|
if List.648 then
|
||||||
let List.665 : I64 = CallByName List.66 List.118 List.119;
|
let List.650 : I64 = CallByName List.66 List.116 List.117;
|
||||||
let List.664 : [C {}, C I64] = TagId(1) List.665;
|
let List.649 : [C {}, C I64] = TagId(1) List.650;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
else
|
else
|
||||||
let List.662 : {} = Struct {};
|
let List.647 : {} = Struct {};
|
||||||
let List.661 : [C {}, C I64] = TagId(0) List.662;
|
let List.646 : [C {}, C I64] = TagId(0) List.647;
|
||||||
ret List.661;
|
ret List.646;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.668 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.668;
|
ret List.653;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.651 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.9 (List.390):
|
procedure List.9 (List.388):
|
||||||
let List.660 : U64 = 0i64;
|
let List.645 : U64 = 0i64;
|
||||||
let List.653 : [C {}, C I64] = CallByName List.2 List.390 List.660;
|
let List.638 : [C {}, C I64] = CallByName List.2 List.388 List.645;
|
||||||
let List.657 : U8 = 1i64;
|
let List.642 : U8 = 1i64;
|
||||||
let List.658 : U8 = GetTagId List.653;
|
let List.643 : U8 = GetTagId List.638;
|
||||||
let List.659 : Int1 = lowlevel Eq List.657 List.658;
|
let List.644 : Int1 = lowlevel Eq List.642 List.643;
|
||||||
if List.659 then
|
if List.644 then
|
||||||
let List.391 : I64 = UnionAtIndex (Id 1) (Index 0) List.653;
|
let List.389 : I64 = UnionAtIndex (Id 1) (Index 0) List.638;
|
||||||
let List.654 : [C Int1, C I64] = TagId(1) List.391;
|
let List.639 : [C Int1, C I64] = TagId(1) List.389;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
else
|
else
|
||||||
let List.656 : Int1 = true;
|
let List.641 : Int1 = true;
|
||||||
let List.655 : [C Int1, C I64] = TagId(0) List.656;
|
let List.640 : [C Int1, C I64] = TagId(0) List.641;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
194
crates/compiler/test_mono/generated/issue_4770.txt
generated
194
crates/compiler/test_mono/generated/issue_4770.txt
generated
|
@ -6,118 +6,118 @@ procedure Bool.2 ():
|
||||||
let Bool.24 : Int1 = true;
|
let Bool.24 : Int1 = true;
|
||||||
ret Bool.24;
|
ret Bool.24;
|
||||||
|
|
||||||
procedure List.104 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6):
|
procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
|
||||||
joinpoint List.691 List.289 List.290 List.291 List.292 List.293 List.294:
|
joinpoint List.676 List.287 List.288 List.289 List.290 List.291 List.292:
|
||||||
let List.693 : Int1 = CallByName Num.22 List.293 List.294;
|
let List.678 : Int1 = CallByName Num.22 List.291 List.292;
|
||||||
if List.693 then
|
if List.678 then
|
||||||
let List.699 : [<r>C I64, C List *self] = CallByName List.66 List.289 List.293;
|
let List.684 : [<r>C I64, C List *self] = CallByName List.66 List.287 List.291;
|
||||||
inc List.699;
|
inc List.684;
|
||||||
let List.700 : [<r>C I64, C List *self] = CallByName List.66 List.290 List.293;
|
let List.685 : [<r>C I64, C List *self] = CallByName List.66 List.288 List.291;
|
||||||
inc List.700;
|
inc List.685;
|
||||||
let List.295 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.699 List.700;
|
let List.293 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.684 List.685;
|
||||||
let List.695 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.291 List.295;
|
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.697 : U64 = 1i64;
|
let List.682 : U64 = 1i64;
|
||||||
let List.696 : U64 = CallByName Num.51 List.293 List.697;
|
let List.681 : U64 = CallByName Num.51 List.291 List.682;
|
||||||
jump List.691 List.289 List.290 List.695 List.292 List.696 List.294;
|
jump List.676 List.287 List.288 List.680 List.290 List.681 List.292;
|
||||||
else
|
else
|
||||||
dec List.289;
|
dec List.287;
|
||||||
dec List.290;
|
dec List.288;
|
||||||
ret List.291;
|
ret List.289;
|
||||||
in
|
in
|
||||||
|
inc #Derived_gen.0;
|
||||||
inc #Derived_gen.1;
|
inc #Derived_gen.1;
|
||||||
inc #Derived_gen.2;
|
jump List.676 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
|
||||||
jump List.691 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6;
|
|
||||||
|
|
||||||
procedure List.114 (List.567, List.568, List.569):
|
procedure List.112 (List.541, List.542, List.543):
|
||||||
let List.667 : U64 = 0i64;
|
let List.652 : U64 = 0i64;
|
||||||
let List.668 : U64 = CallByName List.6 List.567;
|
let List.653 : U64 = CallByName List.6 List.541;
|
||||||
let List.666 : [C {}, C {}] = CallByName List.80 List.567 List.568 List.569 List.667 List.668;
|
let List.651 : [C {}, C {}] = CallByName List.80 List.541 List.542 List.543 List.652 List.653;
|
||||||
|
ret List.651;
|
||||||
|
|
||||||
|
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.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;
|
||||||
|
else
|
||||||
|
let List.669 : {} = Struct {};
|
||||||
|
let List.668 : [C {}, C {}] = TagId(0) List.669;
|
||||||
|
ret List.668;
|
||||||
|
|
||||||
|
procedure List.56 (List.242, List.243):
|
||||||
|
let List.649 : {} = Struct {};
|
||||||
|
let List.641 : [C {}, C {}] = CallByName List.112 List.242 List.649 List.243;
|
||||||
|
let List.646 : U8 = 1i64;
|
||||||
|
let List.647 : U8 = GetTagId List.641;
|
||||||
|
let List.648 : Int1 = lowlevel Eq List.646 List.647;
|
||||||
|
if List.648 then
|
||||||
|
let List.642 : Int1 = CallByName Bool.2;
|
||||||
|
ret List.642;
|
||||||
|
else
|
||||||
|
let List.643 : Int1 = CallByName Bool.1;
|
||||||
|
ret List.643;
|
||||||
|
|
||||||
|
procedure List.6 (#Attr.2):
|
||||||
|
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.639;
|
||||||
|
|
||||||
|
procedure List.6 (#Attr.2):
|
||||||
|
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.667;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.666 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.666;
|
||||||
|
|
||||||
procedure List.23 (List.285, List.286, List.287):
|
|
||||||
let List.703 : U64 = CallByName List.6 List.285;
|
|
||||||
let List.704 : U64 = CallByName List.6 List.286;
|
|
||||||
let List.288 : U64 = CallByName Num.148 List.703 List.704;
|
|
||||||
let List.689 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.288;
|
|
||||||
let List.690 : U64 = 0i64;
|
|
||||||
let List.688 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.104 List.285 List.286 List.689 List.287 List.690 List.288;
|
|
||||||
ret List.688;
|
|
||||||
|
|
||||||
procedure List.246 (List.655, List.247, List.245):
|
|
||||||
let List.685 : Int1 = CallByName Test.1 List.247;
|
|
||||||
if List.685 then
|
|
||||||
let List.687 : {} = Struct {};
|
|
||||||
let List.686 : [C {}, C {}] = TagId(1) List.687;
|
|
||||||
ret List.686;
|
|
||||||
else
|
|
||||||
let List.684 : {} = Struct {};
|
|
||||||
let List.683 : [C {}, C {}] = TagId(0) List.684;
|
|
||||||
ret List.683;
|
|
||||||
|
|
||||||
procedure List.56 (List.244, List.245):
|
|
||||||
let List.664 : {} = Struct {};
|
|
||||||
let List.656 : [C {}, C {}] = CallByName List.114 List.244 List.664 List.245;
|
|
||||||
let List.661 : U8 = 1i64;
|
|
||||||
let List.662 : U8 = GetTagId List.656;
|
|
||||||
let List.663 : Int1 = lowlevel Eq List.661 List.662;
|
|
||||||
if List.663 then
|
|
||||||
let List.657 : Int1 = CallByName Bool.2;
|
|
||||||
ret List.657;
|
|
||||||
else
|
|
||||||
let List.658 : Int1 = CallByName Bool.1;
|
|
||||||
ret List.658;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.654 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.654;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.682;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.681 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.686 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.681;
|
ret List.686;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.701 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.701;
|
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.702 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
let List.687 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.702;
|
ret List.687;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.698 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #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.698;
|
ret List.683;
|
||||||
|
|
||||||
procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
||||||
joinpoint List.669 List.570 List.571 List.572 List.573 List.574:
|
joinpoint List.654 List.544 List.545 List.546 List.547 List.548:
|
||||||
let List.671 : Int1 = CallByName Num.22 List.573 List.574;
|
let List.656 : Int1 = CallByName Num.22 List.547 List.548;
|
||||||
if List.671 then
|
if List.656 then
|
||||||
let List.680 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.570 List.573;
|
let List.665 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.544 List.547;
|
||||||
inc List.680;
|
inc List.665;
|
||||||
let List.672 : [C {}, C {}] = CallByName List.246 List.571 List.680 List.572;
|
let List.657 : [C {}, C {}] = CallByName List.244 List.545 List.665 List.546;
|
||||||
let List.677 : U8 = 1i64;
|
let List.662 : U8 = 1i64;
|
||||||
let List.678 : U8 = GetTagId List.672;
|
let List.663 : U8 = GetTagId List.657;
|
||||||
let List.679 : Int1 = lowlevel Eq List.677 List.678;
|
let List.664 : Int1 = lowlevel Eq List.662 List.663;
|
||||||
if List.679 then
|
if List.664 then
|
||||||
let List.575 : {} = UnionAtIndex (Id 1) (Index 0) List.672;
|
let List.549 : {} = UnionAtIndex (Id 1) (Index 0) List.657;
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : U64 = CallByName Num.51 List.573 List.675;
|
let List.659 : U64 = CallByName Num.51 List.547 List.660;
|
||||||
jump List.669 List.570 List.575 List.572 List.674 List.574;
|
jump List.654 List.544 List.549 List.546 List.659 List.548;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.576 : {} = UnionAtIndex (Id 0) (Index 0) List.672;
|
let List.550 : {} = UnionAtIndex (Id 0) (Index 0) List.657;
|
||||||
let List.676 : [C {}, C {}] = TagId(0) List.576;
|
let List.661 : [C {}, C {}] = TagId(0) List.550;
|
||||||
ret List.676;
|
ret List.661;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.670 : [C {}, C {}] = TagId(1) List.571;
|
let List.655 : [C {}, C {}] = TagId(1) List.545;
|
||||||
ret List.670;
|
ret List.655;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.7;
|
inc #Derived_gen.7;
|
||||||
jump List.669 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
jump List.654 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
|
||||||
|
|
||||||
procedure Num.148 (Num.225, Num.226):
|
procedure Num.148 (Num.225, Num.226):
|
||||||
let Num.288 : Int1 = CallByName Num.22 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;
|
let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
||||||
ret Num.284;
|
ret Num.284;
|
||||||
|
|
||||||
procedure Test.1 (#Derived_gen.0):
|
procedure Test.1 (#Derived_gen.6):
|
||||||
joinpoint Test.26 Test.6:
|
joinpoint Test.26 Test.6:
|
||||||
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
||||||
let Test.66 : U8 = 0i64;
|
let Test.66 : U8 = 0i64;
|
||||||
|
@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.0):
|
||||||
let Test.44 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.45, Test.46};
|
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;
|
jump Test.26 Test.44;
|
||||||
in
|
in
|
||||||
jump Test.26 #Derived_gen.0;
|
jump Test.26 #Derived_gen.6;
|
||||||
|
|
||||||
procedure Test.15 (Test.16, Test.17):
|
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};
|
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.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
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.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.664 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.649 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.663 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.648 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.663;
|
ret List.648;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : [<rnu>C *self, <null>] = CallByName List.66 List.173 List.176;
|
let List.647 : [<rnu>C *self, <null>] = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.174 List.662;
|
let List.176 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.172 List.647;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.656 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.641 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #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.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.656 : U64 = 1i64;
|
let List.641 : U64 = 1i64;
|
||||||
let List.654 : List I64 = CallByName List.70 List.134 List.656;
|
let List.639 : List I64 = CallByName List.70 List.132 List.641;
|
||||||
let List.653 : List I64 = CallByName List.71 List.654 List.135;
|
let List.638 : List I64 = CallByName List.71 List.639 List.133;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.657 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.655 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.2 : List I64 = Array [1i64];
|
let Test.2 : List I64 = Array [1i64];
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.656 : U64 = 1i64;
|
let List.641 : U64 = 1i64;
|
||||||
let List.654 : List I64 = CallByName List.70 List.134 List.656;
|
let List.639 : List I64 = CallByName List.70 List.132 List.641;
|
||||||
let List.653 : List I64 = CallByName List.71 List.654 List.135;
|
let List.638 : List I64 = CallByName List.71 List.639 List.133;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.657 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.642 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.655 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.640 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure Test.1 (Test.2):
|
procedure Test.1 (Test.2):
|
||||||
let Test.6 : I64 = 42i64;
|
let Test.6 : I64 = 42i64;
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
procedure List.3 (List.124, List.125, List.126):
|
||||||
let List.656 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128;
|
let List.641 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||||
let List.655 : List I64 = StructAtIndex 0 List.656;
|
let List.640 : List I64 = StructAtIndex 0 List.641;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.654 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
procedure List.64 (List.121, List.122, List.123):
|
||||||
let List.661 : U64 = CallByName List.6 List.123;
|
let List.646 : U64 = CallByName List.6 List.121;
|
||||||
let List.658 : Int1 = CallByName Num.22 List.124 List.661;
|
let List.643 : Int1 = CallByName Num.22 List.122 List.646;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.659 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125;
|
let List.644 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||||
ret List.659;
|
ret List.644;
|
||||||
else
|
else
|
||||||
let List.657 : {List I64, I64} = Struct {List.123, List.125};
|
let List.642 : {List I64, I64} = Struct {List.121, List.123};
|
||||||
ret List.657;
|
ret List.642;
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.660 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
let List.645 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.660;
|
ret List.645;
|
||||||
|
|
||||||
procedure Num.19 (#Attr.2, #Attr.3):
|
procedure Num.19 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : U64 = lowlevel NumAdd #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.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.659 : U64 = CallByName List.6 List.118;
|
let List.644 : U64 = CallByName List.6 List.116;
|
||||||
let List.655 : Int1 = CallByName Num.22 List.119 List.659;
|
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||||
if List.655 then
|
if List.640 then
|
||||||
let List.657 : I64 = CallByName List.66 List.118 List.119;
|
let List.642 : I64 = CallByName List.66 List.116 List.117;
|
||||||
let List.656 : [C {}, C I64] = TagId(1) List.657;
|
let List.641 : [C {}, C I64] = TagId(1) List.642;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
else
|
else
|
||||||
let List.654 : {} = Struct {};
|
let List.639 : {} = Struct {};
|
||||||
let List.653 : [C {}, C I64] = TagId(0) List.654;
|
let List.638 : [C {}, C I64] = TagId(0) List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.660;
|
ret List.645;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.658 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.643 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : Int1 = lowlevel NumLt #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):
|
procedure List.6 (#Attr.2):
|
||||||
let List.653 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.638 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.654 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.639 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
|
|
||||||
procedure Num.19 (#Attr.2, #Attr.3):
|
procedure Num.19 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
let Num.281 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,66 +1,66 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.665 : U64 = 0i64;
|
let List.650 : U64 = 0i64;
|
||||||
let List.666 : U64 = CallByName List.6 List.170;
|
let List.651 : U64 = CallByName List.6 List.168;
|
||||||
let List.664 : List Str = CallByName List.99 List.170 List.171 List.172 List.665 List.666;
|
let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.659 : U64 = CallByName List.6 List.118;
|
let List.644 : U64 = CallByName List.6 List.116;
|
||||||
let List.655 : Int1 = CallByName Num.22 List.119 List.659;
|
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||||
if List.655 then
|
if List.640 then
|
||||||
let List.657 : Str = CallByName List.66 List.118 List.119;
|
let List.642 : Str = CallByName List.66 List.116 List.117;
|
||||||
inc List.657;
|
inc List.642;
|
||||||
let List.656 : [C {}, C Str] = TagId(1) List.657;
|
let List.641 : [C {}, C Str] = TagId(1) List.642;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
else
|
else
|
||||||
let List.654 : {} = Struct {};
|
let List.639 : {} = Struct {};
|
||||||
let List.653 : [C {}, C Str] = TagId(0) List.654;
|
let List.638 : [C {}, C Str] = TagId(0) List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.676 : Str = CallByName Test.3 List.284;
|
let List.661 : Str = CallByName Test.3 List.282;
|
||||||
let List.675 : List Str = CallByName List.71 List.283 List.676;
|
let List.660 : List Str = CallByName List.71 List.281 List.661;
|
||||||
ret List.675;
|
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
|
||||||
let List.662 : List Str = CallByName List.68 List.281;
|
|
||||||
let List.661 : List Str = CallByName List.18 List.279 List.662 List.280;
|
|
||||||
ret List.661;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.660;
|
ret List.660;
|
||||||
|
|
||||||
|
procedure List.5 (List.277, List.278):
|
||||||
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
|
let List.647 : List Str = CallByName List.68 List.279;
|
||||||
|
let List.646 : List Str = CallByName List.18 List.277 List.647 List.278;
|
||||||
|
ret List.646;
|
||||||
|
|
||||||
|
procedure List.6 (#Attr.2):
|
||||||
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.645;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.658 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.678 : List Str = lowlevel ListWithCapacity #Attr.2;
|
let List.663 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.678;
|
ret List.663;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.667 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.652 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.669 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.654 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.669 then
|
if List.654 then
|
||||||
let List.673 : Str = CallByName List.66 List.173 List.176;
|
let List.658 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.673;
|
inc List.658;
|
||||||
let List.178 : List Str = CallByName List.282 List.174 List.673 List.175;
|
let List.176 : List Str = CallByName List.280 List.172 List.658 List.173;
|
||||||
dec List.673;
|
dec List.658;
|
||||||
let List.672 : U64 = 1i64;
|
let List.657 : U64 = 1i64;
|
||||||
let List.671 : U64 = CallByName Num.51 List.176 List.672;
|
let List.656 : U64 = CallByName Num.51 List.174 List.657;
|
||||||
jump List.667 List.173 List.178 List.175 List.671 List.177;
|
jump List.652 List.171 List.176 List.173 List.656 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.3;
|
inc #Derived_gen.0;
|
||||||
jump List.667 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
jump List.652 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,65 +1,65 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.665 : U64 = 0i64;
|
let List.650 : U64 = 0i64;
|
||||||
let List.666 : U64 = CallByName List.6 List.170;
|
let List.651 : U64 = CallByName List.6 List.168;
|
||||||
let List.664 : List Str = CallByName List.99 List.170 List.171 List.172 List.665 List.666;
|
let List.649 : List Str = CallByName List.97 List.168 List.169 List.170 List.650 List.651;
|
||||||
ret List.664;
|
ret List.649;
|
||||||
|
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.659 : U64 = CallByName List.6 List.118;
|
let List.644 : U64 = CallByName List.6 List.116;
|
||||||
let List.655 : Int1 = CallByName Num.22 List.119 List.659;
|
let List.640 : Int1 = CallByName Num.22 List.117 List.644;
|
||||||
if List.655 then
|
if List.640 then
|
||||||
let List.657 : Str = CallByName List.66 List.118 List.119;
|
let List.642 : Str = CallByName List.66 List.116 List.117;
|
||||||
inc List.657;
|
inc List.642;
|
||||||
let List.656 : [C {}, C Str] = TagId(1) List.657;
|
let List.641 : [C {}, C Str] = TagId(1) List.642;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
else
|
else
|
||||||
let List.654 : {} = Struct {};
|
let List.639 : {} = Struct {};
|
||||||
let List.653 : [C {}, C Str] = TagId(0) List.654;
|
let List.638 : [C {}, C Str] = TagId(0) List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.676 : Str = CallByName Test.3 List.284;
|
let List.661 : Str = CallByName Test.3 List.282;
|
||||||
let List.675 : List Str = CallByName List.71 List.283 List.676;
|
let List.660 : List Str = CallByName List.71 List.281 List.661;
|
||||||
ret List.675;
|
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
|
||||||
let List.662 : List Str = CallByName List.68 List.281;
|
|
||||||
let List.661 : List Str = CallByName List.18 List.279 List.662 List.280;
|
|
||||||
ret List.661;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.660;
|
ret List.660;
|
||||||
|
|
||||||
|
procedure List.5 (List.277, List.278):
|
||||||
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
|
let List.647 : List Str = CallByName List.68 List.279;
|
||||||
|
let List.646 : List Str = CallByName List.18 List.277 List.647 List.278;
|
||||||
|
ret List.646;
|
||||||
|
|
||||||
|
procedure List.6 (#Attr.2):
|
||||||
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.645;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.658 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.643 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.678 : List Str = lowlevel ListWithCapacity #Attr.2;
|
let List.663 : List Str = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.678;
|
ret List.663;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.662 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
procedure List.97 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
||||||
joinpoint List.667 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.652 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.669 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.654 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.669 then
|
if List.654 then
|
||||||
let List.673 : Str = CallByName List.66 List.173 List.176;
|
let List.658 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.673;
|
inc List.658;
|
||||||
let List.178 : List Str = CallByName List.282 List.174 List.673 List.175;
|
let List.176 : List Str = CallByName List.280 List.172 List.658 List.173;
|
||||||
let List.672 : U64 = 1i64;
|
let List.657 : U64 = 1i64;
|
||||||
let List.671 : U64 = CallByName Num.51 List.176 List.672;
|
let List.656 : U64 = CallByName Num.51 List.174 List.657;
|
||||||
jump List.667 List.173 List.178 List.175 List.671 List.177;
|
jump List.652 List.171 List.176 List.173 List.656 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.3;
|
inc #Derived_gen.3;
|
||||||
jump List.667 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
jump List.652 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,66 +1,66 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.657 : U64 = 0i64;
|
let List.642 : U64 = 0i64;
|
||||||
let List.658 : U64 = CallByName List.6 List.170;
|
let List.643 : U64 = CallByName List.6 List.168;
|
||||||
let List.656 : List U8 = CallByName List.99 List.170 List.171 List.172 List.657 List.658;
|
let List.641 : List U8 = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.672 : U8 = GetTagId List.280;
|
let List.657 : U8 = GetTagId List.278;
|
||||||
joinpoint List.673 List.670:
|
joinpoint List.658 List.655:
|
||||||
let List.669 : List U8 = CallByName List.71 List.283 List.670;
|
let List.654 : List U8 = CallByName List.71 List.281 List.655;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
in
|
in
|
||||||
switch List.672:
|
switch List.657:
|
||||||
case 0:
|
case 0:
|
||||||
let List.674 : U8 = CallByName Test.4 List.284 List.280;
|
let List.659 : U8 = CallByName Test.4 List.282 List.278;
|
||||||
jump List.673 List.674;
|
jump List.658 List.659;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
let List.674 : U8 = CallByName Test.6 List.284 List.280;
|
let List.659 : U8 = CallByName Test.6 List.282 List.278;
|
||||||
jump List.673 List.674;
|
jump List.658 List.659;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
let List.674 : U8 = CallByName Test.8 List.284;
|
let List.659 : U8 = CallByName Test.8 List.282;
|
||||||
jump List.673 List.674;
|
jump List.658 List.659;
|
||||||
|
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
procedure List.5 (List.277, List.278):
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
let List.654 : List U8 = CallByName List.68 List.281;
|
let List.639 : List U8 = CallByName List.68 List.279;
|
||||||
let List.653 : List U8 = CallByName List.18 List.279 List.654 List.280;
|
let List.638 : List U8 = CallByName List.18 List.277 List.639 List.278;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.651 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.675 : List U8 = lowlevel ListWithCapacity #Attr.2;
|
let List.660 : List U8 = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.675;
|
ret List.660;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.671 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.656 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.671;
|
ret List.656;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
|
procedure List.97 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.659 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.661 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.661 then
|
if List.646 then
|
||||||
let List.665 : U8 = CallByName List.66 List.173 List.176;
|
let List.650 : U8 = CallByName List.66 List.171 List.174;
|
||||||
let List.178 : List U8 = CallByName List.282 List.174 List.665 List.175;
|
let List.176 : List U8 = CallByName List.280 List.172 List.650 List.173;
|
||||||
let List.664 : U64 = 1i64;
|
let List.649 : U64 = 1i64;
|
||||||
let List.663 : U64 = CallByName Num.51 List.176 List.664;
|
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||||
jump List.659 List.173 List.178 List.175 List.663 List.177;
|
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.3;
|
inc #Derived_gen.0;
|
||||||
jump List.659 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
|
jump List.644 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.19 (#Attr.2, #Attr.3):
|
procedure Num.19 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;
|
let Num.283 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
procedure List.3 (List.124, List.125, List.126):
|
||||||
let List.654 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128;
|
let List.639 : {List I64, I64} = CallByName List.64 List.124 List.125 List.126;
|
||||||
let List.653 : List I64 = StructAtIndex 0 List.654;
|
let List.638 : List I64 = StructAtIndex 0 List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.660;
|
ret List.645;
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
procedure List.64 (List.121, List.122, List.123):
|
||||||
let List.659 : U64 = CallByName List.6 List.123;
|
let List.644 : U64 = CallByName List.6 List.121;
|
||||||
let List.656 : Int1 = CallByName Num.22 List.124 List.659;
|
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||||
if List.656 then
|
if List.641 then
|
||||||
let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125;
|
let List.642 : {List I64, I64} = CallByName List.67 List.121 List.122 List.123;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
else
|
else
|
||||||
let List.655 : {List I64, I64} = Struct {List.123, List.125};
|
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : Int1 = lowlevel NumLt #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):
|
procedure List.28 (#Attr.2, #Attr.3):
|
||||||
let List.655 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
|
let List.640 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.59 (List.385):
|
procedure List.59 (List.383):
|
||||||
let List.654 : {} = Struct {};
|
let List.639 : {} = Struct {};
|
||||||
let List.653 : List I64 = CallByName List.28 List.385 List.654;
|
let List.638 : List I64 = CallByName List.28 List.383 List.639;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure Num.46 (#Attr.2, #Attr.3):
|
procedure Num.46 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;
|
let Num.281 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,41 +1,41 @@
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.675 : U64 = CallByName List.6 List.118;
|
let List.660 : U64 = CallByName List.6 List.116;
|
||||||
let List.672 : Int1 = CallByName Num.22 List.119 List.675;
|
let List.657 : Int1 = CallByName Num.22 List.117 List.660;
|
||||||
if List.672 then
|
if List.657 then
|
||||||
let List.674 : I64 = CallByName List.66 List.118 List.119;
|
let List.659 : I64 = CallByName List.66 List.116 List.117;
|
||||||
let List.673 : [C {}, C I64] = TagId(1) List.674;
|
let List.658 : [C {}, C I64] = TagId(1) List.659;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
else
|
else
|
||||||
let List.671 : {} = Struct {};
|
let List.656 : {} = Struct {};
|
||||||
let List.670 : [C {}, C I64] = TagId(0) List.671;
|
let List.655 : [C {}, C I64] = TagId(0) List.656;
|
||||||
ret List.670;
|
|
||||||
|
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
|
||||||
let List.662 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128;
|
|
||||||
let List.661 : List I64 = StructAtIndex 0 List.662;
|
|
||||||
ret List.661;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.660;
|
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
|
||||||
let List.659 : U64 = CallByName List.6 List.123;
|
|
||||||
let List.656 : Int1 = CallByName Num.22 List.124 List.659;
|
|
||||||
if List.656 then
|
|
||||||
let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125;
|
|
||||||
ret List.657;
|
|
||||||
else
|
|
||||||
let List.655 : {List I64, I64} = Struct {List.123, List.125};
|
|
||||||
ret List.655;
|
ret List.655;
|
||||||
|
|
||||||
|
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.6 (#Attr.2):
|
||||||
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.645;
|
||||||
|
|
||||||
|
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;
|
||||||
|
else
|
||||||
|
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||||
|
ret List.640;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.668 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.668;
|
ret List.653;
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
procedure List.3 (List.124, List.125, List.126):
|
||||||
let List.662 : {List U64, U64} = CallByName List.64 List.126 List.127 List.128;
|
let List.647 : {List U64, U64} = CallByName List.64 List.124 List.125 List.126;
|
||||||
let List.661 : List U64 = StructAtIndex 0 List.662;
|
let List.646 : List U64 = StructAtIndex 0 List.647;
|
||||||
ret List.661;
|
ret List.646;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.660;
|
ret List.645;
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
procedure List.64 (List.121, List.122, List.123):
|
||||||
let List.659 : U64 = CallByName List.6 List.123;
|
let List.644 : U64 = CallByName List.6 List.121;
|
||||||
let List.656 : Int1 = CallByName Num.22 List.124 List.659;
|
let List.641 : Int1 = CallByName Num.22 List.122 List.644;
|
||||||
if List.656 then
|
if List.641 then
|
||||||
let List.657 : {List U64, U64} = CallByName List.67 List.123 List.124 List.125;
|
let List.642 : {List U64, U64} = CallByName List.67 List.121 List.122 List.123;
|
||||||
ret List.657;
|
ret List.642;
|
||||||
else
|
else
|
||||||
let List.655 : {List U64, U64} = Struct {List.123, List.125};
|
let List.640 : {List U64, U64} = Struct {List.121, List.123};
|
||||||
ret List.655;
|
ret List.640;
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.658 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
let List.643 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -1,52 +1,52 @@
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.657 : U64 = 0i64;
|
let List.642 : U64 = 0i64;
|
||||||
let List.658 : U64 = CallByName List.6 List.170;
|
let List.643 : U64 = CallByName List.6 List.168;
|
||||||
let List.656 : List [<rnnu>C List *self] = CallByName List.99 List.170 List.171 List.172 List.657 List.658;
|
let List.641 : List [<rnnu>C List *self] = CallByName List.97 List.168 List.169 List.170 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.282 (List.283, List.284, List.280):
|
procedure List.280 (List.281, List.282, List.278):
|
||||||
let List.670 : [<rnnu>C List *self] = CallByName Test.2 List.284;
|
let List.655 : [<rnnu>C List *self] = CallByName Test.2 List.282;
|
||||||
let List.669 : List [<rnnu>C List *self] = CallByName List.71 List.283 List.670;
|
let List.654 : List [<rnnu>C List *self] = CallByName List.71 List.281 List.655;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.5 (List.279, List.280):
|
procedure List.5 (List.277, List.278):
|
||||||
let List.281 : U64 = CallByName List.6 List.279;
|
let List.279 : U64 = CallByName List.6 List.277;
|
||||||
let List.654 : List [<rnnu>C List *self] = CallByName List.68 List.281;
|
let List.639 : List [<rnnu>C List *self] = CallByName List.68 List.279;
|
||||||
let List.653 : List [<rnnu>C List *self] = CallByName List.18 List.279 List.654 List.280;
|
let List.638 : List [<rnnu>C List *self] = CallByName List.18 List.277 List.639 List.278;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.667 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.652 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.666 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.651 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.666;
|
ret List.651;
|
||||||
|
|
||||||
procedure List.68 (#Attr.2):
|
procedure List.68 (#Attr.2):
|
||||||
let List.672 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
|
let List.657 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
|
||||||
ret List.672;
|
ret List.657;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.671 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.656 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.671;
|
ret List.656;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8):
|
procedure List.97 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
|
||||||
joinpoint List.659 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.644 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.661 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.646 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.661 then
|
if List.646 then
|
||||||
let List.665 : [<rnnu>C List *self] = CallByName List.66 List.173 List.176;
|
let List.650 : [<rnnu>C List *self] = CallByName List.66 List.171 List.174;
|
||||||
inc List.665;
|
inc List.650;
|
||||||
let List.178 : List [<rnnu>C List *self] = CallByName List.282 List.174 List.665 List.175;
|
let List.176 : List [<rnnu>C List *self] = CallByName List.280 List.172 List.650 List.173;
|
||||||
let List.664 : U64 = 1i64;
|
let List.649 : U64 = 1i64;
|
||||||
let List.663 : U64 = CallByName Num.51 List.176 List.664;
|
let List.648 : U64 = CallByName Num.51 List.174 List.649;
|
||||||
jump List.659 List.173 List.178 List.175 List.663 List.177;
|
jump List.644 List.171 List.176 List.173 List.648 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.4;
|
inc #Derived_gen.1;
|
||||||
jump List.659 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8;
|
jump List.644 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.282 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
64
crates/compiler/test_mono/generated/rigids.txt
generated
64
crates/compiler/test_mono/generated/rigids.txt
generated
|
@ -1,41 +1,41 @@
|
||||||
procedure List.2 (List.118, List.119):
|
procedure List.2 (List.116, List.117):
|
||||||
let List.675 : U64 = CallByName List.6 List.118;
|
let List.660 : U64 = CallByName List.6 List.116;
|
||||||
let List.672 : Int1 = CallByName Num.22 List.119 List.675;
|
let List.657 : Int1 = CallByName Num.22 List.117 List.660;
|
||||||
if List.672 then
|
if List.657 then
|
||||||
let List.674 : I64 = CallByName List.66 List.118 List.119;
|
let List.659 : I64 = CallByName List.66 List.116 List.117;
|
||||||
let List.673 : [C {}, C I64] = TagId(1) List.674;
|
let List.658 : [C {}, C I64] = TagId(1) List.659;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
else
|
else
|
||||||
let List.671 : {} = Struct {};
|
let List.656 : {} = Struct {};
|
||||||
let List.670 : [C {}, C I64] = TagId(0) List.671;
|
let List.655 : [C {}, C I64] = TagId(0) List.656;
|
||||||
ret List.670;
|
|
||||||
|
|
||||||
procedure List.3 (List.126, List.127, List.128):
|
|
||||||
let List.662 : {List I64, I64} = CallByName List.64 List.126 List.127 List.128;
|
|
||||||
let List.661 : List I64 = StructAtIndex 0 List.662;
|
|
||||||
ret List.661;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.660 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.660;
|
|
||||||
|
|
||||||
procedure List.64 (List.123, List.124, List.125):
|
|
||||||
let List.659 : U64 = CallByName List.6 List.123;
|
|
||||||
let List.656 : Int1 = CallByName Num.22 List.124 List.659;
|
|
||||||
if List.656 then
|
|
||||||
let List.657 : {List I64, I64} = CallByName List.67 List.123 List.124 List.125;
|
|
||||||
ret List.657;
|
|
||||||
else
|
|
||||||
let List.655 : {List I64, I64} = Struct {List.123, List.125};
|
|
||||||
ret List.655;
|
ret List.655;
|
||||||
|
|
||||||
|
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.6 (#Attr.2):
|
||||||
|
let List.645 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
|
ret List.645;
|
||||||
|
|
||||||
|
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;
|
||||||
|
else
|
||||||
|
let List.640 : {List I64, I64} = Struct {List.121, List.123};
|
||||||
|
ret List.640;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.668 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.653 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.668;
|
ret List.653;
|
||||||
|
|
||||||
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.658 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
let List.643 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.658;
|
ret List.643;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -30,57 +30,57 @@ procedure Encode.26 (Encode.107, Encode.108):
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.13 (#Attr.2, #Attr.3):
|
procedure List.13 (#Attr.2, #Attr.3):
|
||||||
let List.679 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
let List.664 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||||
ret List.679;
|
ret List.664;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.675 : U64 = 1i64;
|
let List.660 : U64 = 1i64;
|
||||||
let List.674 : List U8 = CallByName List.70 List.134 List.675;
|
let List.659 : List U8 = CallByName List.70 List.132 List.660;
|
||||||
let List.673 : List U8 = CallByName List.71 List.674 List.135;
|
let List.658 : List U8 = CallByName List.71 List.659 List.133;
|
||||||
ret List.673;
|
ret List.658;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
ret List.663;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.648 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.648;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.654 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.669;
|
ret List.654;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.652 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.667;
|
ret List.652;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.662 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.677;
|
ret List.662;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.97 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.643 then
|
||||||
let List.662 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.66 List.174 List.662 List.175;
|
let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.12;
|
||||||
jump List.656 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.641 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
let Num.282 : U8 = lowlevel NumIntCast #Attr.2;
|
||||||
|
|
|
@ -88,92 +88,92 @@ procedure Encode.26 (Encode.107, Encode.108):
|
||||||
ret Encode.110;
|
ret Encode.110;
|
||||||
|
|
||||||
procedure List.13 (#Attr.2, #Attr.3):
|
procedure List.13 (#Attr.2, #Attr.3):
|
||||||
let List.679 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
|
let List.664 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||||
ret List.679;
|
ret List.664;
|
||||||
|
|
||||||
procedure List.13 (#Attr.2, #Attr.3):
|
procedure List.13 (#Attr.2, #Attr.3):
|
||||||
let List.707 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
let List.692 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
|
||||||
ret List.707;
|
ret List.692;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.654 : U64 = 0i64;
|
let List.639 : U64 = 0i64;
|
||||||
let List.655 : U64 = CallByName List.6 List.170;
|
let List.640 : U64 = CallByName List.6 List.168;
|
||||||
let List.653 : List U8 = CallByName List.99 List.170 List.171 List.172 List.654 List.655;
|
let List.638 : List U8 = CallByName List.97 List.168 List.169 List.170 List.639 List.640;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.18 (List.170, List.171, List.172):
|
procedure List.18 (List.168, List.169, List.170):
|
||||||
let List.681 : U64 = 0i64;
|
let List.666 : U64 = 0i64;
|
||||||
let List.682 : U64 = CallByName List.6 List.170;
|
let List.667 : U64 = CallByName List.6 List.168;
|
||||||
let List.680 : List U8 = CallByName List.99 List.170 List.171 List.172 List.681 List.682;
|
let List.665 : List U8 = CallByName List.97 List.168 List.169 List.170 List.666 List.667;
|
||||||
ret List.680;
|
ret List.665;
|
||||||
|
|
||||||
procedure List.4 (List.134, List.135):
|
procedure List.4 (List.132, List.133):
|
||||||
let List.702 : U64 = 1i64;
|
let List.687 : U64 = 1i64;
|
||||||
let List.701 : List U8 = CallByName List.70 List.134 List.702;
|
let List.686 : List U8 = CallByName List.70 List.132 List.687;
|
||||||
let List.700 : List U8 = CallByName List.71 List.701 List.135;
|
let List.685 : List U8 = CallByName List.71 List.686 List.133;
|
||||||
ret List.700;
|
ret List.685;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.678 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.663 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.678;
|
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
|
||||||
let List.705 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
||||||
ret List.705;
|
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
|
||||||
let List.663 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
||||||
ret List.663;
|
ret List.663;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.6 (#Attr.2):
|
||||||
let List.690 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.690;
|
ret List.690;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.648 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.648;
|
||||||
|
|
||||||
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
|
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
|
ret List.675;
|
||||||
|
|
||||||
procedure List.70 (#Attr.2, #Attr.3):
|
procedure List.70 (#Attr.2, #Attr.3):
|
||||||
let List.696 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
|
||||||
ret List.696;
|
ret List.681;
|
||||||
|
|
||||||
procedure List.71 (#Attr.2, #Attr.3):
|
procedure List.71 (#Attr.2, #Attr.3):
|
||||||
let List.694 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.694;
|
ret List.679;
|
||||||
|
|
||||||
procedure List.8 (#Attr.2, #Attr.3):
|
procedure List.8 (#Attr.2, #Attr.3):
|
||||||
let List.704 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
|
||||||
ret List.704;
|
ret List.689;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
|
procedure List.97 (#Derived_gen.38, #Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42):
|
||||||
joinpoint List.656 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.668 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.658 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.670 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.658 then
|
if List.670 then
|
||||||
let List.662 : [C {}, C {}, C Str] = CallByName List.66 List.173 List.176;
|
let List.674 : Str = CallByName List.66 List.171 List.174;
|
||||||
inc List.662;
|
inc List.674;
|
||||||
let List.178 : List U8 = CallByName Test.66 List.174 List.662 List.175;
|
let List.176 : List U8 = CallByName Test.66 List.172 List.674 List.173;
|
||||||
let List.661 : U64 = 1i64;
|
let List.673 : U64 = 1i64;
|
||||||
let List.660 : U64 = CallByName Num.51 List.176 List.661;
|
let List.672 : U64 = CallByName Num.51 List.174 List.673;
|
||||||
jump List.656 List.173 List.178 List.175 List.660 List.177;
|
jump List.668 List.171 List.176 List.173 List.672 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.23;
|
inc #Derived_gen.38;
|
||||||
jump List.656 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
|
jump List.668 #Derived_gen.38 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42;
|
||||||
|
|
||||||
procedure List.99 (#Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46, #Derived_gen.47):
|
procedure List.97 (#Derived_gen.46, #Derived_gen.47, #Derived_gen.48, #Derived_gen.49, #Derived_gen.50):
|
||||||
joinpoint List.683 List.173 List.174 List.175 List.176 List.177:
|
joinpoint List.641 List.171 List.172 List.173 List.174 List.175:
|
||||||
let List.685 : Int1 = CallByName Num.22 List.176 List.177;
|
let List.643 : Int1 = CallByName Num.22 List.174 List.175;
|
||||||
if List.685 then
|
if List.643 then
|
||||||
let List.689 : Str = CallByName List.66 List.173 List.176;
|
let List.647 : [C {}, C {}, C Str] = CallByName List.66 List.171 List.174;
|
||||||
inc List.689;
|
inc List.647;
|
||||||
let List.178 : List U8 = CallByName Test.66 List.174 List.689 List.175;
|
let List.176 : List U8 = CallByName Test.66 List.172 List.647 List.173;
|
||||||
let List.688 : U64 = 1i64;
|
let List.646 : U64 = 1i64;
|
||||||
let List.687 : U64 = CallByName Num.51 List.176 List.688;
|
let List.645 : U64 = CallByName Num.51 List.174 List.646;
|
||||||
jump List.683 List.173 List.178 List.175 List.687 List.177;
|
jump List.641 List.171 List.176 List.173 List.645 List.175;
|
||||||
else
|
else
|
||||||
dec List.173;
|
dec List.171;
|
||||||
ret List.174;
|
ret List.172;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.43;
|
inc #Derived_gen.46;
|
||||||
jump List.683 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46 #Derived_gen.47;
|
jump List.641 #Derived_gen.46 #Derived_gen.47 #Derived_gen.48 #Derived_gen.49 #Derived_gen.50;
|
||||||
|
|
||||||
procedure Num.127 (#Attr.2):
|
procedure Num.127 (#Attr.2):
|
||||||
let Num.286 : U8 = lowlevel NumIntCast #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;
|
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
|
||||||
ret Bool.23;
|
ret Bool.23;
|
||||||
|
|
||||||
procedure List.114 (List.567, List.568, List.569):
|
procedure List.112 (List.541, List.542, List.543):
|
||||||
let List.671 : U64 = 0i64;
|
let List.656 : U64 = 0i64;
|
||||||
let List.672 : U64 = CallByName List.6 List.567;
|
let List.657 : U64 = CallByName List.6 List.541;
|
||||||
let List.670 : [C U64, C U64] = CallByName List.80 List.567 List.568 List.569 List.671 List.672;
|
let List.655 : [C U64, C U64] = CallByName List.80 List.541 List.542 List.543 List.656 List.657;
|
||||||
ret List.670;
|
ret List.655;
|
||||||
|
|
||||||
procedure List.26 (List.211, List.212, List.213):
|
procedure List.26 (List.209, List.210, List.211):
|
||||||
let List.664 : [C U64, C U64] = CallByName List.114 List.211 List.212 List.213;
|
let List.649 : [C U64, C U64] = CallByName List.112 List.209 List.210 List.211;
|
||||||
let List.667 : U8 = 1i64;
|
let List.652 : U8 = 1i64;
|
||||||
let List.668 : U8 = GetTagId List.664;
|
let List.653 : U8 = GetTagId List.649;
|
||||||
let List.669 : Int1 = lowlevel Eq List.667 List.668;
|
let List.654 : Int1 = lowlevel Eq List.652 List.653;
|
||||||
if List.669 then
|
if List.654 then
|
||||||
let List.214 : U64 = UnionAtIndex (Id 1) (Index 0) List.664;
|
let List.212 : U64 = UnionAtIndex (Id 1) (Index 0) List.649;
|
||||||
ret List.214;
|
ret List.212;
|
||||||
else
|
else
|
||||||
let List.215 : U64 = UnionAtIndex (Id 0) (Index 0) List.664;
|
let List.213 : U64 = UnionAtIndex (Id 0) (Index 0) List.649;
|
||||||
ret List.215;
|
ret List.213;
|
||||||
|
|
||||||
procedure List.38 (List.399, List.400):
|
procedure List.38 (List.397, List.398):
|
||||||
let List.663 : U64 = CallByName List.6 List.399;
|
let List.648 : U64 = CallByName List.6 List.397;
|
||||||
let List.401 : U64 = CallByName Num.77 List.663 List.400;
|
let List.399 : U64 = CallByName Num.77 List.648 List.398;
|
||||||
let List.653 : List U8 = CallByName List.43 List.399 List.401;
|
let List.638 : List U8 = CallByName List.43 List.397 List.399;
|
||||||
ret List.653;
|
ret List.638;
|
||||||
|
|
||||||
procedure List.43 (List.397, List.398):
|
procedure List.43 (List.395, List.396):
|
||||||
let List.661 : U64 = CallByName List.6 List.397;
|
let List.646 : U64 = CallByName List.6 List.395;
|
||||||
let List.660 : U64 = CallByName Num.77 List.661 List.398;
|
let List.645 : U64 = CallByName Num.77 List.646 List.396;
|
||||||
let List.655 : {U64, U64} = Struct {List.398, List.660};
|
let List.640 : {U64, U64} = Struct {List.396, List.645};
|
||||||
let List.654 : List U8 = CallByName List.49 List.397 List.655;
|
let List.639 : List U8 = CallByName List.49 List.395 List.640;
|
||||||
ret List.654;
|
ret List.639;
|
||||||
|
|
||||||
procedure List.49 (List.475, List.476):
|
procedure List.49 (List.473, List.474):
|
||||||
let List.657 : U64 = StructAtIndex 1 List.476;
|
let List.642 : U64 = StructAtIndex 1 List.474;
|
||||||
let List.658 : U64 = StructAtIndex 0 List.476;
|
let List.643 : U64 = StructAtIndex 0 List.474;
|
||||||
let List.656 : List U8 = CallByName List.72 List.475 List.657 List.658;
|
let List.641 : List U8 = CallByName List.72 List.473 List.642 List.643;
|
||||||
ret List.656;
|
ret List.641;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
let List.662 : U64 = lowlevel ListLenU64 #Attr.2;
|
let List.647 : U64 = lowlevel ListLenU64 #Attr.2;
|
||||||
ret List.662;
|
ret List.647;
|
||||||
|
|
||||||
procedure List.66 (#Attr.2, #Attr.3):
|
procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.685 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
let List.670 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.685;
|
ret List.670;
|
||||||
|
|
||||||
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let List.659 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
let List.644 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret List.659;
|
ret List.644;
|
||||||
|
|
||||||
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
|
||||||
joinpoint List.673 List.570 List.571 List.572 List.573 List.574:
|
joinpoint List.658 List.544 List.545 List.546 List.547 List.548:
|
||||||
let List.675 : Int1 = CallByName Num.22 List.573 List.574;
|
let List.660 : Int1 = CallByName Num.22 List.547 List.548;
|
||||||
if List.675 then
|
if List.660 then
|
||||||
let List.684 : U8 = CallByName List.66 List.570 List.573;
|
let List.669 : U8 = CallByName List.66 List.544 List.547;
|
||||||
let List.676 : [C U64, C U64] = CallByName Test.3 List.571 List.684;
|
let List.661 : [C U64, C U64] = CallByName Test.3 List.545 List.669;
|
||||||
let List.681 : U8 = 1i64;
|
let List.666 : U8 = 1i64;
|
||||||
let List.682 : U8 = GetTagId List.676;
|
let List.667 : U8 = GetTagId List.661;
|
||||||
let List.683 : Int1 = lowlevel Eq List.681 List.682;
|
let List.668 : Int1 = lowlevel Eq List.666 List.667;
|
||||||
if List.683 then
|
if List.668 then
|
||||||
let List.575 : U64 = UnionAtIndex (Id 1) (Index 0) List.676;
|
let List.549 : U64 = UnionAtIndex (Id 1) (Index 0) List.661;
|
||||||
let List.679 : U64 = 1i64;
|
let List.664 : U64 = 1i64;
|
||||||
let List.678 : U64 = CallByName Num.51 List.573 List.679;
|
let List.663 : U64 = CallByName Num.51 List.547 List.664;
|
||||||
jump List.673 List.570 List.575 List.572 List.678 List.574;
|
jump List.658 List.544 List.549 List.546 List.663 List.548;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.576 : U64 = UnionAtIndex (Id 0) (Index 0) List.676;
|
let List.550 : U64 = UnionAtIndex (Id 0) (Index 0) List.661;
|
||||||
let List.680 : [C U64, C U64] = TagId(0) List.576;
|
let List.665 : [C U64, C U64] = TagId(0) List.550;
|
||||||
ret List.680;
|
ret List.665;
|
||||||
else
|
else
|
||||||
dec List.570;
|
dec List.544;
|
||||||
let List.674 : [C U64, C U64] = TagId(1) List.571;
|
let List.659 : [C U64, C U64] = TagId(1) List.545;
|
||||||
ret List.674;
|
ret List.659;
|
||||||
in
|
in
|
||||||
inc #Derived_gen.0;
|
inc #Derived_gen.0;
|
||||||
jump List.673 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
jump List.658 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
|
||||||
|
|
||||||
procedure Num.22 (#Attr.2, #Attr.3):
|
procedure Num.22 (#Attr.2, #Attr.3):
|
||||||
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
||||||
|
|
|
@ -65,6 +65,8 @@ const DUPLICATE_IMPLEMENTATION: &str = "DUPLICATE IMPLEMENTATION";
|
||||||
const UNNECESSARY_IMPLEMENTATIONS: &str = "UNNECESSARY IMPLEMENTATIONS";
|
const UNNECESSARY_IMPLEMENTATIONS: &str = "UNNECESSARY IMPLEMENTATIONS";
|
||||||
const INCOMPLETE_ABILITY_IMPLEMENTATION: &str = "INCOMPLETE ABILITY IMPLEMENTATION";
|
const INCOMPLETE_ABILITY_IMPLEMENTATION: &str = "INCOMPLETE ABILITY IMPLEMENTATION";
|
||||||
const STATEMENT_AFTER_EXPRESSION: &str = "STATEMENT AFTER EXPRESSION";
|
const STATEMENT_AFTER_EXPRESSION: &str = "STATEMENT AFTER EXPRESSION";
|
||||||
|
const MISSING_EXCLAMATION: &str = "MISSING EXCLAMATION";
|
||||||
|
const UNNECESSARY_EXCLAMATION: &str = "UNNECESSARY EXCLAMATION";
|
||||||
|
|
||||||
pub fn can_problem<'b>(
|
pub fn can_problem<'b>(
|
||||||
alloc: &'b RocDocAllocator<'b>,
|
alloc: &'b RocDocAllocator<'b>,
|
||||||
|
@ -1427,6 +1429,42 @@ pub fn can_problem<'b>(
|
||||||
|
|
||||||
title = STATEMENT_AFTER_EXPRESSION.to_string();
|
title = STATEMENT_AFTER_EXPRESSION.to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Problem::UnsuffixedEffectfulRecordField(region) => {
|
||||||
|
doc = alloc.stack([
|
||||||
|
alloc.reflow(
|
||||||
|
"The type of this record field is an effectful function, but its name does not indicate so:",
|
||||||
|
),
|
||||||
|
alloc.region(lines.convert_region(region), severity),
|
||||||
|
alloc.reflow("Add an exclamation mark at the end, like:"),
|
||||||
|
alloc
|
||||||
|
.parser_suggestion("{ readFile!: Str => Str }")
|
||||||
|
.indent(4),
|
||||||
|
alloc.reflow("This will help readers identify it as a source of effects."),
|
||||||
|
]);
|
||||||
|
|
||||||
|
title = MISSING_EXCLAMATION.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
|
Problem::SuffixedPureRecordField(region) => {
|
||||||
|
doc = alloc.stack([
|
||||||
|
alloc.reflow(
|
||||||
|
"The type of this record field is a pure function, but its name suggests otherwise:",
|
||||||
|
),
|
||||||
|
alloc.region(lines.convert_region(region), severity),
|
||||||
|
alloc
|
||||||
|
.reflow("The exclamation mark at the end is reserved for effectful functions."),
|
||||||
|
alloc.concat([
|
||||||
|
alloc.hint("Did you mean to use "),
|
||||||
|
alloc.keyword("=>"),
|
||||||
|
alloc.text(" instead of "),
|
||||||
|
alloc.keyword("->"),
|
||||||
|
alloc.text("?"),
|
||||||
|
]),
|
||||||
|
]);
|
||||||
|
|
||||||
|
title = UNNECESSARY_EXCLAMATION.to_string();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Report {
|
Report {
|
||||||
|
|
|
@ -409,7 +409,7 @@ pub fn type_problem<'b>(
|
||||||
FxSuffixKind::Pattern(_) => alloc.reflow(
|
FxSuffixKind::Pattern(_) => alloc.reflow(
|
||||||
"This is an effectful function, but its name does not indicate so:",
|
"This is an effectful function, but its name does not indicate so:",
|
||||||
),
|
),
|
||||||
FxSuffixKind::RecordField(_) => {
|
FxSuffixKind::UnsuffixedRecordField => {
|
||||||
unreachable!()
|
unreachable!()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -427,7 +427,7 @@ pub fn type_problem<'b>(
|
||||||
severity,
|
severity,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
UnsuffixedEffectfulFunction(region, FxSuffixKind::RecordField(_)) => {
|
UnsuffixedEffectfulFunction(region, FxSuffixKind::UnsuffixedRecordField) => {
|
||||||
let stack = [
|
let stack = [
|
||||||
alloc.reflow(
|
alloc.reflow(
|
||||||
"This field's value is an effectful function, but its name does not indicate so:",
|
"This field's value is an effectful function, but its name does not indicate so:",
|
||||||
|
@ -455,9 +455,9 @@ pub fn type_problem<'b>(
|
||||||
FxSuffixKind::Pattern(_) => {
|
FxSuffixKind::Pattern(_) => {
|
||||||
alloc.reflow("This is a pure function, but its name suggests otherwise:")
|
alloc.reflow("This is a pure function, but its name suggests otherwise:")
|
||||||
}
|
}
|
||||||
FxSuffixKind::RecordField(_) => alloc.reflow(
|
FxSuffixKind::UnsuffixedRecordField => {
|
||||||
"This field's value is a pure function, but its name suggests otherwise:",
|
unreachable!()
|
||||||
),
|
}
|
||||||
},
|
},
|
||||||
alloc.region(lines.convert_region(region), severity),
|
alloc.region(lines.convert_region(region), severity),
|
||||||
alloc
|
alloc
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue