mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-03 08:34:33 +00:00
Fix compile errors
This commit is contained in:
parent
02526b6dc2
commit
94ab904b6f
9 changed files with 254 additions and 302 deletions
|
@ -1,6 +1,7 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
def::Def,
|
def::Def,
|
||||||
expr::{AccessorData, ClosureData, Expr, Field, OpaqueWrapFunctionData, WhenBranch},
|
expr::{AccessorData, ClosureData, Expr, Field, OpaqueWrapFunctionData},
|
||||||
|
pattern::{DestructType, Pattern, RecordDestruct},
|
||||||
};
|
};
|
||||||
use roc_module::{
|
use roc_module::{
|
||||||
ident::{Lowercase, TagName},
|
ident::{Lowercase, TagName},
|
||||||
|
@ -570,6 +571,29 @@ fn deep_copy_expr_help<C: CopyEnv>(env: &mut C, copied: &mut Vec<Variable>, expr
|
||||||
lambda_set_variables: lambda_set_variables.clone(),
|
lambda_set_variables: lambda_set_variables.clone(),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
OpaqueWrapFunction(OpaqueWrapFunctionData {
|
||||||
|
opaque_name,
|
||||||
|
opaque_var,
|
||||||
|
specialized_def_type,
|
||||||
|
type_arguments,
|
||||||
|
lambda_set_variables,
|
||||||
|
function_name,
|
||||||
|
function_var,
|
||||||
|
argument_var,
|
||||||
|
closure_var,
|
||||||
|
}) => OpaqueWrapFunction(OpaqueWrapFunctionData {
|
||||||
|
opaque_name: *opaque_name,
|
||||||
|
opaque_var: sub!(*opaque_var),
|
||||||
|
function_name: *function_name,
|
||||||
|
function_var: sub!(*function_var),
|
||||||
|
argument_var: sub!(*argument_var),
|
||||||
|
closure_var: sub!(*closure_var),
|
||||||
|
// The following three are only used for constraining
|
||||||
|
specialized_def_type: specialized_def_type.clone(),
|
||||||
|
type_arguments: type_arguments.clone(),
|
||||||
|
lambda_set_variables: lambda_set_variables.clone(),
|
||||||
|
}),
|
||||||
|
|
||||||
Expect {
|
Expect {
|
||||||
loc_condition,
|
loc_condition,
|
||||||
loc_continuation,
|
loc_continuation,
|
||||||
|
@ -639,44 +663,7 @@ fn deep_copy_pattern_help<C: CopyEnv>(
|
||||||
specialized_def_type: specialized_def_type.clone(),
|
specialized_def_type: specialized_def_type.clone(),
|
||||||
type_arguments: type_arguments.clone(),
|
type_arguments: type_arguments.clone(),
|
||||||
lambda_set_variables: lambda_set_variables.clone(),
|
lambda_set_variables: lambda_set_variables.clone(),
|
||||||
},
|
}
|
||||||
|
|
||||||
OpaqueWrapFunction(OpaqueWrapFunctionData {
|
|
||||||
opaque_name,
|
|
||||||
opaque_var,
|
|
||||||
specialized_def_type,
|
|
||||||
type_arguments,
|
|
||||||
lambda_set_variables,
|
|
||||||
function_name,
|
|
||||||
function_var,
|
|
||||||
argument_var,
|
|
||||||
closure_var,
|
|
||||||
}) => OpaqueWrapFunction(OpaqueWrapFunctionData {
|
|
||||||
opaque_name: *opaque_name,
|
|
||||||
opaque_var: sub!(*opaque_var),
|
|
||||||
function_name: *function_name,
|
|
||||||
function_var: sub!(*function_var),
|
|
||||||
argument_var: sub!(*argument_var),
|
|
||||||
closure_var: sub!(*closure_var),
|
|
||||||
// The following three are only used for constraining
|
|
||||||
specialized_def_type: specialized_def_type.clone(),
|
|
||||||
type_arguments: type_arguments.clone(),
|
|
||||||
lambda_set_variables: lambda_set_variables.clone(),
|
|
||||||
}),
|
|
||||||
|
|
||||||
Expect {
|
|
||||||
loc_condition,
|
|
||||||
loc_continuation,
|
|
||||||
lookups_in_cond,
|
|
||||||
} => Expect {
|
|
||||||
loc_condition: Box::new(loc_condition.map(|e| go_help!(e))),
|
|
||||||
loc_continuation: Box::new(loc_continuation.map(|e| go_help!(e))),
|
|
||||||
lookups_in_cond: lookups_in_cond.to_vec(),
|
|
||||||
},
|
|
||||||
|
|
||||||
TypedHole(v) => TypedHole(sub!(*v)),
|
|
||||||
|
|
||||||
RuntimeError(err) => RuntimeError(err.clone()),
|
|
||||||
}
|
}
|
||||||
RecordDestructure {
|
RecordDestructure {
|
||||||
whole_var,
|
whole_var,
|
||||||
|
|
|
@ -19,10 +19,6 @@ mod encoding;
|
||||||
|
|
||||||
pub(crate) const DERIVED_SYNTH: ModuleId = ModuleId::DERIVED_SYNTH;
|
pub(crate) const DERIVED_SYNTH: ModuleId = ModuleId::DERIVED_SYNTH;
|
||||||
|
|
||||||
mod encoding;
|
|
||||||
|
|
||||||
pub(crate) const DERIVED_MODULE: ModuleId = ModuleId::DERIVED;
|
|
||||||
|
|
||||||
pub fn synth_var(subs: &mut Subs, content: Content) -> Variable {
|
pub fn synth_var(subs: &mut Subs, content: Content) -> Variable {
|
||||||
let descriptor = Descriptor {
|
let descriptor = Descriptor {
|
||||||
content,
|
content,
|
||||||
|
@ -211,30 +207,6 @@ impl DerivedModule {
|
||||||
pub fn decompose(self) -> (Subs, IdentIds) {
|
pub fn decompose(self) -> (Subs, IdentIds) {
|
||||||
(self.subs, self.derived_ident_ids)
|
(self.subs, self.derived_ident_ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn copy_lambda_set_var_to_subs(&self, var: Variable, target: &mut Subs) -> Variable {
|
|
||||||
#[cfg(debug_assertions)]
|
|
||||||
{
|
|
||||||
debug_assert!(!self.stolen);
|
|
||||||
}
|
|
||||||
|
|
||||||
let copied_import = copy_import_to(
|
|
||||||
&self.subs,
|
|
||||||
target,
|
|
||||||
// bookkeep unspecialized lambda sets of var - I think we want this here
|
|
||||||
true,
|
|
||||||
var,
|
|
||||||
// TODO: I think this is okay because the only use of `copy_lambda_set_var_to_subs`
|
|
||||||
// (at least right now) is for lambda set compaction, which will automatically unify
|
|
||||||
// and lower ranks, and never generalize.
|
|
||||||
//
|
|
||||||
// However this is a bad coupling and maybe not a good assumption, we should revisit
|
|
||||||
// this when possible.
|
|
||||||
Rank::toplevel(),
|
|
||||||
);
|
|
||||||
|
|
||||||
copied_import.variable
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Thread-sharable [`DerivedModule`].
|
/// Thread-sharable [`DerivedModule`].
|
||||||
|
|
|
@ -2789,7 +2789,6 @@ fn specialize_external_help<'a>(
|
||||||
variable: Variable,
|
variable: Variable,
|
||||||
host_exposed_aliases: &[(Symbol, Variable)],
|
host_exposed_aliases: &[(Symbol, Variable)],
|
||||||
) {
|
) {
|
||||||
dbg!(env.home);
|
|
||||||
let partial_proc_id = match procs.partial_procs.symbol_to_id(name.name()) {
|
let partial_proc_id = match procs.partial_procs.symbol_to_id(name.name()) {
|
||||||
Some(v) => v,
|
Some(v) => v,
|
||||||
None => {
|
None => {
|
||||||
|
|
|
@ -244,56 +244,56 @@ procedure Json.79 (Json.107, Json.108):
|
||||||
else
|
else
|
||||||
jump Json.159 Json.87;
|
jump Json.159 Json.87;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.344 : {List U8, U64} = CallByName Json.79 List.122 List.123;
|
let List.344 : {List U8, U64} = CallByName Json.79 List.123 List.124;
|
||||||
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
||||||
ret List.343;
|
ret List.343;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.418 : {List U8, U64} = CallByName Json.79 List.122 List.123;
|
let List.418 : {List U8, U64} = CallByName Json.79 List.123 List.124;
|
||||||
let List.417 : [C [], C {List U8, U64}] = TagId(1) List.418;
|
let List.417 : [C [], C {List U8, U64}] = TagId(1) List.418;
|
||||||
ret List.417;
|
ret List.417;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.321 : {{}} = Struct {List.120};
|
let List.321 : {{}} = Struct {List.121};
|
||||||
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.321;
|
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.321;
|
||||||
let List.318 : U8 = 1i64;
|
let List.318 : U8 = 1i64;
|
||||||
let List.319 : U8 = GetTagId List.315;
|
let List.319 : U8 = GetTagId List.315;
|
||||||
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
||||||
if List.320 then
|
if List.320 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
let List.317 : {List U8, U64} = CallByName List.64 List.126;
|
let List.317 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.317;
|
ret List.317;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.395 : {{}} = Struct {List.120};
|
let List.395 : {{}} = Struct {List.121};
|
||||||
let List.389 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.395;
|
let List.389 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.395;
|
||||||
let List.392 : U8 = 1i64;
|
let List.392 : U8 = 1i64;
|
||||||
let List.393 : U8 = GetTagId List.389;
|
let List.393 : U8 = GetTagId List.389;
|
||||||
let List.394 : Int1 = lowlevel Eq List.392 List.393;
|
let List.394 : Int1 = lowlevel Eq List.392 List.393;
|
||||||
if List.394 then
|
if List.394 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.389;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.389;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.389;
|
dec List.389;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.389;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.389;
|
||||||
dec List.389;
|
dec List.389;
|
||||||
let List.391 : {List U8, U64} = CallByName List.64 List.126;
|
let List.391 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.391;
|
ret List.391;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.450 : U64 = 1i64;
|
let List.450 : U64 = 1i64;
|
||||||
let List.449 : List U8 = CallByName List.65 List.89 List.450;
|
let List.449 : List U8 = CallByName List.65 List.90 List.450;
|
||||||
let List.448 : List U8 = CallByName List.66 List.449 List.90;
|
let List.448 : List U8 = CallByName List.66 List.449 List.91;
|
||||||
ret List.448;
|
ret List.448;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -319,13 +319,13 @@ procedure List.60 (#Attr.2, #Attr.3):
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.328 : U64 = 0i64;
|
let List.328 : U64 = 0i64;
|
||||||
let List.329 : U64 = CallByName List.6 List.283;
|
let List.329 : U64 = CallByName List.6 List.283;
|
||||||
let List.327 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.328 List.329;
|
let List.327 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.328 List.329;
|
||||||
ret List.327;
|
ret List.327;
|
||||||
|
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.402 : U64 = 0i64;
|
let List.402 : U64 = 0i64;
|
||||||
let List.403 : U64 = CallByName List.6 List.283;
|
let List.403 : U64 = CallByName List.6 List.283;
|
||||||
let List.401 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.402 List.403;
|
let List.401 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.402 List.403;
|
||||||
ret List.401;
|
ret List.401;
|
||||||
|
|
||||||
procedure List.64 (#Attr.2):
|
procedure List.64 (#Attr.2):
|
||||||
|
@ -340,12 +340,12 @@ procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.452 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.452 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.452;
|
ret List.452;
|
||||||
|
|
||||||
procedure List.76 (List.361, List.362, List.363, List.364, List.365):
|
procedure List.77 (List.361, List.362, List.363, List.364, List.365):
|
||||||
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.332 then
|
if List.332 then
|
||||||
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
||||||
let List.333 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.341 List.288;
|
let List.333 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.341 List.288;
|
||||||
let List.338 : U8 = 1i64;
|
let List.338 : U8 = 1i64;
|
||||||
let List.339 : U8 = GetTagId List.333;
|
let List.339 : U8 = GetTagId List.333;
|
||||||
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
||||||
|
@ -367,12 +367,12 @@ procedure List.76 (List.361, List.362, List.363, List.364, List.365):
|
||||||
in
|
in
|
||||||
jump List.330 List.361 List.362 List.363 List.364 List.365;
|
jump List.330 List.361 List.362 List.363 List.364 List.365;
|
||||||
|
|
||||||
procedure List.76 (List.435, List.436, List.437, List.438, List.439):
|
procedure List.77 (List.435, List.436, List.437, List.438, List.439):
|
||||||
joinpoint List.404 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.404 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.406 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.406 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.406 then
|
if List.406 then
|
||||||
let List.415 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
let List.415 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
||||||
let List.407 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.415 List.288;
|
let List.407 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.415 List.288;
|
||||||
let List.412 : U8 = 1i64;
|
let List.412 : U8 = 1i64;
|
||||||
let List.413 : U8 = GetTagId List.407;
|
let List.413 : U8 = GetTagId List.407;
|
||||||
let List.414 : Int1 = lowlevel Eq List.412 List.413;
|
let List.414 : Int1 = lowlevel Eq List.412 List.413;
|
||||||
|
@ -419,38 +419,37 @@ procedure Num.24 (#Attr.2, #Attr.3):
|
||||||
ret Num.283;
|
ret Num.283;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.212 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.213 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.212;
|
ret Str.213;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.12 : Str = "bar";
|
let Test.12 : Str = "bar";
|
||||||
let Test.10 : {} = CallByName Json.1;
|
let Test.10 : {} = CallByName Json.1;
|
||||||
let Test.8 : List U8 = CallByName Encode.25 Test.12 Test.10;
|
let Test.8 : List U8 = CallByName Encode.25 Test.12 Test.10;
|
||||||
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
||||||
dec Test.8;
|
|
||||||
let Test.5 : U8 = 1i64;
|
let Test.5 : U8 = 1i64;
|
||||||
let Test.6 : U8 = GetTagId Test.1;
|
let Test.6 : U8 = GetTagId Test.1;
|
||||||
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
||||||
|
|
|
@ -149,33 +149,33 @@ procedure Json.79 (Json.107, Json.108):
|
||||||
else
|
else
|
||||||
jump Json.119 Json.87;
|
jump Json.119 Json.87;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.344 : {List U8, U64} = CallByName Json.79 List.122 List.123;
|
let List.344 : {List U8, U64} = CallByName Json.79 List.123 List.124;
|
||||||
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
||||||
ret List.343;
|
ret List.343;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.321 : {{}} = Struct {List.120};
|
let List.321 : {{}} = Struct {List.121};
|
||||||
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.321;
|
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.321;
|
||||||
let List.318 : U8 = 1i64;
|
let List.318 : U8 = 1i64;
|
||||||
let List.319 : U8 = GetTagId List.315;
|
let List.319 : U8 = GetTagId List.315;
|
||||||
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
||||||
if List.320 then
|
if List.320 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
let List.317 : {List U8, U64} = CallByName List.64 List.126;
|
let List.317 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.317;
|
ret List.317;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.376 : U64 = 1i64;
|
let List.376 : U64 = 1i64;
|
||||||
let List.375 : List U8 = CallByName List.65 List.89 List.376;
|
let List.375 : List U8 = CallByName List.65 List.90 List.376;
|
||||||
let List.374 : List U8 = CallByName List.66 List.375 List.90;
|
let List.374 : List U8 = CallByName List.66 List.375 List.91;
|
||||||
ret List.374;
|
ret List.374;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -193,7 +193,7 @@ procedure List.60 (#Attr.2, #Attr.3):
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.328 : U64 = 0i64;
|
let List.328 : U64 = 0i64;
|
||||||
let List.329 : U64 = CallByName List.6 List.283;
|
let List.329 : U64 = CallByName List.6 List.283;
|
||||||
let List.327 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.328 List.329;
|
let List.327 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.328 List.329;
|
||||||
ret List.327;
|
ret List.327;
|
||||||
|
|
||||||
procedure List.64 (#Attr.2):
|
procedure List.64 (#Attr.2):
|
||||||
|
@ -208,12 +208,12 @@ procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.378 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.378 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.378;
|
ret List.378;
|
||||||
|
|
||||||
procedure List.76 (List.361, List.362, List.363, List.364, List.365):
|
procedure List.77 (List.361, List.362, List.363, List.364, List.365):
|
||||||
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.332 then
|
if List.332 then
|
||||||
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
||||||
let List.333 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.341 List.288;
|
let List.333 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.341 List.288;
|
||||||
let List.338 : U8 = 1i64;
|
let List.338 : U8 = 1i64;
|
||||||
let List.339 : U8 = GetTagId List.333;
|
let List.339 : U8 = GetTagId List.333;
|
||||||
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
||||||
|
@ -260,38 +260,37 @@ procedure Num.24 (#Attr.2, #Attr.3):
|
||||||
ret Num.264;
|
ret Num.264;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.210 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.211 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.210;
|
ret Str.211;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.11 : Str = "foo";
|
let Test.11 : Str = "foo";
|
||||||
let Test.10 : {} = CallByName Json.1;
|
let Test.10 : {} = CallByName Json.1;
|
||||||
let Test.8 : List U8 = CallByName Encode.25 Test.11 Test.10;
|
let Test.8 : List U8 = CallByName Encode.25 Test.11 Test.10;
|
||||||
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
||||||
dec Test.8;
|
|
||||||
let Test.5 : U8 = 1i64;
|
let Test.5 : U8 = 1i64;
|
||||||
let Test.6 : U8 = GetTagId Test.1;
|
let Test.6 : U8 = GetTagId Test.1;
|
||||||
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
||||||
|
|
|
@ -157,33 +157,33 @@ procedure Json.79 (Json.107, Json.108):
|
||||||
else
|
else
|
||||||
jump Json.119 Json.87;
|
jump Json.119 Json.87;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.344 : {List U8, U64} = CallByName Json.79 List.122 List.123;
|
let List.344 : {List U8, U64} = CallByName Json.79 List.123 List.124;
|
||||||
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
let List.343 : [C [], C {List U8, U64}] = TagId(1) List.344;
|
||||||
ret List.343;
|
ret List.343;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.321 : {{}} = Struct {List.120};
|
let List.321 : {{}} = Struct {List.121};
|
||||||
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.321;
|
let List.315 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.321;
|
||||||
let List.318 : U8 = 1i64;
|
let List.318 : U8 = 1i64;
|
||||||
let List.319 : U8 = GetTagId List.315;
|
let List.319 : U8 = GetTagId List.315;
|
||||||
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
let List.320 : Int1 = lowlevel Eq List.318 List.319;
|
||||||
if List.320 then
|
if List.320 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.315;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.315;
|
||||||
dec List.315;
|
dec List.315;
|
||||||
let List.317 : {List U8, U64} = CallByName List.64 List.126;
|
let List.317 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.317;
|
ret List.317;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.376 : U64 = 1i64;
|
let List.376 : U64 = 1i64;
|
||||||
let List.375 : List U8 = CallByName List.65 List.89 List.376;
|
let List.375 : List U8 = CallByName List.65 List.90 List.376;
|
||||||
let List.374 : List U8 = CallByName List.66 List.375 List.90;
|
let List.374 : List U8 = CallByName List.66 List.375 List.91;
|
||||||
ret List.374;
|
ret List.374;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -201,7 +201,7 @@ procedure List.60 (#Attr.2, #Attr.3):
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.328 : U64 = 0i64;
|
let List.328 : U64 = 0i64;
|
||||||
let List.329 : U64 = CallByName List.6 List.283;
|
let List.329 : U64 = CallByName List.6 List.283;
|
||||||
let List.327 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.328 List.329;
|
let List.327 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.328 List.329;
|
||||||
ret List.327;
|
ret List.327;
|
||||||
|
|
||||||
procedure List.64 (#Attr.2):
|
procedure List.64 (#Attr.2):
|
||||||
|
@ -216,12 +216,12 @@ procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.378 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.378 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.378;
|
ret List.378;
|
||||||
|
|
||||||
procedure List.76 (List.361, List.362, List.363, List.364, List.365):
|
procedure List.77 (List.361, List.362, List.363, List.364, List.365):
|
||||||
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.330 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.332 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.332 then
|
if List.332 then
|
||||||
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
let List.341 : {Str, {Str}} = CallByName List.60 List.286 List.289;
|
||||||
let List.333 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.341 List.288;
|
let List.333 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.341 List.288;
|
||||||
let List.338 : U8 = 1i64;
|
let List.338 : U8 = 1i64;
|
||||||
let List.339 : U8 = GetTagId List.333;
|
let List.339 : U8 = GetTagId List.333;
|
||||||
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
let List.340 : Int1 = lowlevel Eq List.338 List.339;
|
||||||
|
@ -268,31 +268,31 @@ procedure Num.24 (#Attr.2, #Attr.3):
|
||||||
ret Num.264;
|
ret Num.264;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.210 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.211 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.210;
|
ret Str.211;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.11 : Str = "foo";
|
let Test.11 : Str = "foo";
|
||||||
|
@ -301,7 +301,6 @@ procedure Test.0 ():
|
||||||
let Test.10 : {} = CallByName Json.1;
|
let Test.10 : {} = CallByName Json.1;
|
||||||
let Test.8 : List U8 = CallByName Encode.25 Test.9 Test.10;
|
let Test.8 : List U8 = CallByName Encode.25 Test.9 Test.10;
|
||||||
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
||||||
dec Test.8;
|
|
||||||
let Test.5 : U8 = 1i64;
|
let Test.5 : U8 = 1i64;
|
||||||
let Test.6 : U8 = GetTagId Test.1;
|
let Test.6 : U8 = GetTagId Test.1;
|
||||||
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
||||||
|
|
|
@ -54,10 +54,10 @@ procedure Json.65 (Json.66, Json.105, #Attr.12):
|
||||||
let Json.107 : List U8 = CallByName List.4 Json.108 Json.109;
|
let Json.107 : List U8 = CallByName List.4 Json.108 Json.109;
|
||||||
ret Json.107;
|
ret Json.107;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.302 : U64 = 1i64;
|
let List.302 : U64 = 1i64;
|
||||||
let List.301 : List U8 = CallByName List.65 List.89 List.302;
|
let List.301 : List U8 = CallByName List.65 List.90 List.302;
|
||||||
let List.300 : List U8 = CallByName List.66 List.301 List.90;
|
let List.300 : List U8 = CallByName List.66 List.301 List.91;
|
||||||
ret List.300;
|
ret List.300;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -81,38 +81,37 @@ procedure Num.123 (#Attr.2):
|
||||||
ret Num.258;
|
ret Num.258;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.208 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.209 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.208;
|
ret Str.209;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.9 : Str = "abc";
|
let Test.9 : Str = "abc";
|
||||||
let Test.10 : {} = CallByName Json.1;
|
let Test.10 : {} = CallByName Json.1;
|
||||||
let Test.8 : List U8 = CallByName Encode.25 Test.9 Test.10;
|
let Test.8 : List U8 = CallByName Encode.25 Test.9 Test.10;
|
||||||
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
let Test.1 : [C {U64, U8}, C Str] = CallByName Str.9 Test.8;
|
||||||
dec Test.8;
|
|
||||||
let Test.5 : U8 = 1i64;
|
let Test.5 : U8 = 1i64;
|
||||||
let Test.6 : U8 = GetTagId Test.1;
|
let Test.6 : U8 = GetTagId Test.1;
|
||||||
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
let Test.7 : Int1 = lowlevel Eq Test.5 Test.6;
|
||||||
|
|
|
@ -154,33 +154,33 @@ procedure Json.93 (Json.107, Json.99):
|
||||||
else
|
else
|
||||||
jump Json.121 Json.100;
|
jump Json.121 Json.100;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.350 : {List U8, U64} = CallByName Json.93 List.122 List.123;
|
let List.350 : {List U8, U64} = CallByName Json.93 List.123 List.124;
|
||||||
let List.349 : [C [], C {List U8, U64}] = TagId(1) List.350;
|
let List.349 : [C [], C {List U8, U64}] = TagId(1) List.350;
|
||||||
ret List.349;
|
ret List.349;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.327 : {{}} = Struct {List.120};
|
let List.327 : {{}} = Struct {List.121};
|
||||||
let List.321 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.327;
|
let List.321 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.327;
|
||||||
let List.324 : U8 = 1i64;
|
let List.324 : U8 = 1i64;
|
||||||
let List.325 : U8 = GetTagId List.321;
|
let List.325 : U8 = GetTagId List.321;
|
||||||
let List.326 : Int1 = lowlevel Eq List.324 List.325;
|
let List.326 : Int1 = lowlevel Eq List.324 List.325;
|
||||||
if List.326 then
|
if List.326 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.321;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.321;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.321;
|
dec List.321;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.321;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.321;
|
||||||
dec List.321;
|
dec List.321;
|
||||||
let List.323 : {List U8, U64} = CallByName List.64 List.126;
|
let List.323 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.323;
|
ret List.323;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.382 : U64 = 1i64;
|
let List.382 : U64 = 1i64;
|
||||||
let List.381 : List U8 = CallByName List.65 List.89 List.382;
|
let List.381 : List U8 = CallByName List.65 List.90 List.382;
|
||||||
let List.380 : List U8 = CallByName List.66 List.381 List.90;
|
let List.380 : List U8 = CallByName List.66 List.381 List.91;
|
||||||
ret List.380;
|
ret List.380;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -198,7 +198,7 @@ procedure List.60 (#Attr.2, #Attr.3):
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.334 : U64 = 0i64;
|
let List.334 : U64 = 0i64;
|
||||||
let List.335 : U64 = CallByName List.6 List.283;
|
let List.335 : U64 = CallByName List.6 List.283;
|
||||||
let List.333 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.334 List.335;
|
let List.333 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.334 List.335;
|
||||||
ret List.333;
|
ret List.333;
|
||||||
|
|
||||||
procedure List.64 (#Attr.2):
|
procedure List.64 (#Attr.2):
|
||||||
|
@ -213,12 +213,12 @@ procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.384 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.384 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.384;
|
ret List.384;
|
||||||
|
|
||||||
procedure List.76 (List.367, List.368, List.369, List.370, List.371):
|
procedure List.77 (List.367, List.368, List.369, List.370, List.371):
|
||||||
joinpoint List.336 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.336 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.338 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.338 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.338 then
|
if List.338 then
|
||||||
let List.347 : {Str} = CallByName List.60 List.286 List.289;
|
let List.347 : {Str} = CallByName List.60 List.286 List.289;
|
||||||
let List.339 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.347 List.288;
|
let List.339 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.347 List.288;
|
||||||
let List.344 : U8 = 1i64;
|
let List.344 : U8 = 1i64;
|
||||||
let List.345 : U8 = GetTagId List.339;
|
let List.345 : U8 = GetTagId List.339;
|
||||||
let List.346 : Int1 = lowlevel Eq List.344 List.345;
|
let List.346 : Int1 = lowlevel Eq List.344 List.345;
|
||||||
|
@ -265,38 +265,37 @@ procedure Num.24 (#Attr.2, #Attr.3):
|
||||||
ret Num.266;
|
ret Num.266;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.210 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.211 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.210;
|
ret Str.211;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.12 : Str = "foo";
|
let Test.12 : Str = "foo";
|
||||||
let Test.11 : {} = CallByName Json.1;
|
let Test.11 : {} = CallByName Json.1;
|
||||||
let Test.10 : List U8 = CallByName Encode.25 Test.12 Test.11;
|
let Test.10 : List U8 = CallByName Encode.25 Test.12 Test.11;
|
||||||
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
|
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
|
||||||
dec Test.10;
|
|
||||||
let Test.7 : U8 = 1i64;
|
let Test.7 : U8 = 1i64;
|
||||||
let Test.8 : U8 = GetTagId Test.2;
|
let Test.8 : U8 = GetTagId Test.2;
|
||||||
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
|
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
|
||||||
|
|
|
@ -160,33 +160,33 @@ procedure Json.93 (Json.107, Json.99):
|
||||||
else
|
else
|
||||||
jump Json.121 Json.100;
|
jump Json.121 Json.100;
|
||||||
|
|
||||||
procedure List.121 (List.122, List.123, #Attr.12):
|
procedure List.122 (List.123, List.124, #Attr.12):
|
||||||
let List.120 : {} = StructAtIndex 0 #Attr.12;
|
let List.121 : {} = StructAtIndex 0 #Attr.12;
|
||||||
let List.350 : {List U8, U64} = CallByName Json.93 List.122 List.123;
|
let List.350 : {List U8, U64} = CallByName Json.93 List.123 List.124;
|
||||||
let List.349 : [C [], C {List U8, U64}] = TagId(1) List.350;
|
let List.349 : [C [], C {List U8, U64}] = TagId(1) List.350;
|
||||||
ret List.349;
|
ret List.349;
|
||||||
|
|
||||||
procedure List.18 (List.118, List.119, List.120):
|
procedure List.18 (List.119, List.120, List.121):
|
||||||
let List.327 : {{}} = Struct {List.120};
|
let List.327 : {{}} = Struct {List.121};
|
||||||
let List.321 : [C [], C {List U8, U64}] = CallByName List.63 List.118 List.119 List.327;
|
let List.321 : [C [], C {List U8, U64}] = CallByName List.63 List.119 List.120 List.327;
|
||||||
let List.324 : U8 = 1i64;
|
let List.324 : U8 = 1i64;
|
||||||
let List.325 : U8 = GetTagId List.321;
|
let List.325 : U8 = GetTagId List.321;
|
||||||
let List.326 : Int1 = lowlevel Eq List.324 List.325;
|
let List.326 : Int1 = lowlevel Eq List.324 List.325;
|
||||||
if List.326 then
|
if List.326 then
|
||||||
let List.125 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.321;
|
let List.126 : {List U8, U64} = UnionAtIndex (Id 1) (Index 0) List.321;
|
||||||
inc List.125;
|
inc List.126;
|
||||||
dec List.321;
|
dec List.321;
|
||||||
ret List.125;
|
ret List.126;
|
||||||
else
|
else
|
||||||
let List.126 : [] = UnionAtIndex (Id 0) (Index 0) List.321;
|
let List.127 : [] = UnionAtIndex (Id 0) (Index 0) List.321;
|
||||||
dec List.321;
|
dec List.321;
|
||||||
let List.323 : {List U8, U64} = CallByName List.64 List.126;
|
let List.323 : {List U8, U64} = CallByName List.64 List.127;
|
||||||
ret List.323;
|
ret List.323;
|
||||||
|
|
||||||
procedure List.4 (List.89, List.90):
|
procedure List.4 (List.90, List.91):
|
||||||
let List.382 : U64 = 1i64;
|
let List.382 : U64 = 1i64;
|
||||||
let List.381 : List U8 = CallByName List.65 List.89 List.382;
|
let List.381 : List U8 = CallByName List.65 List.90 List.382;
|
||||||
let List.380 : List U8 = CallByName List.66 List.381 List.90;
|
let List.380 : List U8 = CallByName List.66 List.381 List.91;
|
||||||
ret List.380;
|
ret List.380;
|
||||||
|
|
||||||
procedure List.6 (#Attr.2):
|
procedure List.6 (#Attr.2):
|
||||||
|
@ -204,7 +204,7 @@ procedure List.60 (#Attr.2, #Attr.3):
|
||||||
procedure List.63 (List.283, List.284, List.285):
|
procedure List.63 (List.283, List.284, List.285):
|
||||||
let List.334 : U64 = 0i64;
|
let List.334 : U64 = 0i64;
|
||||||
let List.335 : U64 = CallByName List.6 List.283;
|
let List.335 : U64 = CallByName List.6 List.283;
|
||||||
let List.333 : [C [], C {List U8, U64}] = CallByName List.76 List.283 List.284 List.285 List.334 List.335;
|
let List.333 : [C [], C {List U8, U64}] = CallByName List.77 List.283 List.284 List.285 List.334 List.335;
|
||||||
ret List.333;
|
ret List.333;
|
||||||
|
|
||||||
procedure List.64 (#Attr.2):
|
procedure List.64 (#Attr.2):
|
||||||
|
@ -219,12 +219,12 @@ procedure List.66 (#Attr.2, #Attr.3):
|
||||||
let List.384 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
let List.384 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
||||||
ret List.384;
|
ret List.384;
|
||||||
|
|
||||||
procedure List.76 (List.367, List.368, List.369, List.370, List.371):
|
procedure List.77 (List.367, List.368, List.369, List.370, List.371):
|
||||||
joinpoint List.336 List.286 List.287 List.288 List.289 List.290:
|
joinpoint List.336 List.286 List.287 List.288 List.289 List.290:
|
||||||
let List.338 : Int1 = CallByName Num.22 List.289 List.290;
|
let List.338 : Int1 = CallByName Num.22 List.289 List.290;
|
||||||
if List.338 then
|
if List.338 then
|
||||||
let List.347 : {Str} = CallByName List.60 List.286 List.289;
|
let List.347 : {Str} = CallByName List.60 List.286 List.289;
|
||||||
let List.339 : [C [], C {List U8, U64}] = CallByName List.121 List.287 List.347 List.288;
|
let List.339 : [C [], C {List U8, U64}] = CallByName List.122 List.287 List.347 List.288;
|
||||||
let List.344 : U8 = 1i64;
|
let List.344 : U8 = 1i64;
|
||||||
let List.345 : U8 = GetTagId List.339;
|
let List.345 : U8 = GetTagId List.339;
|
||||||
let List.346 : Int1 = lowlevel Eq List.344 List.345;
|
let List.346 : Int1 = lowlevel Eq List.344 List.345;
|
||||||
|
@ -271,31 +271,31 @@ procedure Num.24 (#Attr.2, #Attr.3):
|
||||||
ret Num.266;
|
ret Num.266;
|
||||||
|
|
||||||
procedure Str.12 (#Attr.2):
|
procedure Str.12 (#Attr.2):
|
||||||
let Str.210 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
let Str.211 : List U8 = lowlevel StrToUtf8 #Attr.2;
|
||||||
ret Str.210;
|
ret Str.211;
|
||||||
|
|
||||||
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
|
||||||
let Str.203 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
let Str.204 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
|
||||||
ret Str.203;
|
ret Str.204;
|
||||||
|
|
||||||
procedure Str.9 (Str.68):
|
procedure Str.9 (Str.69):
|
||||||
let Str.201 : U64 = 0i64;
|
let Str.202 : U64 = 0i64;
|
||||||
let Str.202 : U64 = CallByName List.6 Str.68;
|
let Str.203 : U64 = CallByName List.6 Str.69;
|
||||||
let Str.69 : {U64, Str, Int1, U8} = CallByName Str.48 Str.68 Str.201 Str.202;
|
let Str.70 : {U64, Str, Int1, U8} = CallByName Str.48 Str.69 Str.202 Str.203;
|
||||||
let Str.198 : Int1 = StructAtIndex 2 Str.69;
|
let Str.199 : Int1 = StructAtIndex 2 Str.70;
|
||||||
if Str.198 then
|
if Str.199 then
|
||||||
let Str.200 : Str = StructAtIndex 1 Str.69;
|
let Str.201 : Str = StructAtIndex 1 Str.70;
|
||||||
inc Str.200;
|
inc Str.201;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.199 : [C {U64, U8}, C Str] = TagId(1) Str.200;
|
let Str.200 : [C {U64, U8}, C Str] = TagId(1) Str.201;
|
||||||
ret Str.199;
|
ret Str.200;
|
||||||
else
|
else
|
||||||
let Str.196 : U8 = StructAtIndex 3 Str.69;
|
let Str.197 : U8 = StructAtIndex 3 Str.70;
|
||||||
let Str.197 : U64 = StructAtIndex 0 Str.69;
|
let Str.198 : U64 = StructAtIndex 0 Str.70;
|
||||||
dec Str.69;
|
dec Str.70;
|
||||||
let Str.195 : {U64, U8} = Struct {Str.197, Str.196};
|
let Str.196 : {U64, U8} = Struct {Str.198, Str.197};
|
||||||
let Str.194 : [C {U64, U8}, C Str] = TagId(0) Str.195;
|
let Str.195 : [C {U64, U8}, C Str] = TagId(0) Str.196;
|
||||||
ret Str.194;
|
ret Str.195;
|
||||||
|
|
||||||
procedure Test.0 ():
|
procedure Test.0 ():
|
||||||
let Test.13 : Str = "foo";
|
let Test.13 : Str = "foo";
|
||||||
|
@ -304,7 +304,6 @@ procedure Test.0 ():
|
||||||
let Test.11 : {} = CallByName Json.1;
|
let Test.11 : {} = CallByName Json.1;
|
||||||
let Test.10 : List U8 = CallByName Encode.25 Test.1 Test.11;
|
let Test.10 : List U8 = CallByName Encode.25 Test.1 Test.11;
|
||||||
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
|
let Test.2 : [C {U64, U8}, C Str] = CallByName Str.9 Test.10;
|
||||||
dec Test.10;
|
|
||||||
let Test.7 : U8 = 1i64;
|
let Test.7 : U8 = 1i64;
|
||||||
let Test.8 : U8 = GetTagId Test.2;
|
let Test.8 : U8 = GetTagId Test.2;
|
||||||
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
|
let Test.9 : Int1 = lowlevel Eq Test.7 Test.8;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue