Check in mono goldens

This commit is contained in:
Ayaz Hafiz 2023-02-20 19:31:22 -06:00
parent 7a4fed932d
commit fbc75016e1
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
3 changed files with 691 additions and 0 deletions

View file

@ -0,0 +1,235 @@
procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.106 : List U8 = CallByName Test.5 Encode.94 Encode.96 Encode.102;
ret Encode.106;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.113 : List U8 = CallByName Json.126 Encode.94 Encode.96 Encode.102;
ret Encode.113;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.118 : List U8 = CallByName Json.96 Encode.94 Encode.96 Encode.102;
ret Encode.118;
procedure Encode.25 (Encode.100, Encode.101):
let Encode.104 : List U8 = Array [];
let Encode.105 : {Str, Str} = CallByName Test.2 Encode.100;
let Encode.103 : List U8 = CallByName Encode.23 Encode.104 Encode.105 Encode.101;
ret Encode.103;
procedure Json.1 ():
let Json.396 : {} = Struct {};
ret Json.396;
procedure Json.126 (Json.127, Json.399, #Attr.12):
let Json.125 : List Str = StructAtIndex 1 #Attr.12;
inc Json.125;
let Json.124 : Str = StructAtIndex 0 #Attr.12;
inc Json.124;
dec #Attr.12;
let Json.437 : I64 = 123i64;
let Json.436 : U8 = CallByName Num.125 Json.437;
let Json.433 : List U8 = CallByName List.4 Json.127 Json.436;
let Json.435 : I64 = 34i64;
let Json.434 : U8 = CallByName Num.125 Json.435;
let Json.431 : List U8 = CallByName List.4 Json.433 Json.434;
let Json.432 : List U8 = CallByName Str.12 Json.124;
let Json.428 : List U8 = CallByName List.8 Json.431 Json.432;
let Json.430 : I64 = 34i64;
let Json.429 : U8 = CallByName Num.125 Json.430;
let Json.425 : List U8 = CallByName List.4 Json.428 Json.429;
let Json.427 : I64 = 58i64;
let Json.426 : U8 = CallByName Num.125 Json.427;
let Json.422 : List U8 = CallByName List.4 Json.425 Json.426;
let Json.424 : I64 = 91i64;
let Json.423 : U8 = CallByName Num.125 Json.424;
let Json.129 : List U8 = CallByName List.4 Json.422 Json.423;
let Json.421 : U64 = CallByName List.6 Json.125;
let Json.409 : {List U8, U64} = Struct {Json.129, Json.421};
let Json.410 : {} = Struct {};
let Json.408 : {List U8, U64} = CallByName List.18 Json.125 Json.409 Json.410;
dec Json.125;
let Json.131 : List U8 = StructAtIndex 0 Json.408;
inc Json.131;
dec Json.408;
let Json.407 : I64 = 93i64;
let Json.406 : U8 = CallByName Num.125 Json.407;
let Json.403 : List U8 = CallByName List.4 Json.131 Json.406;
let Json.405 : I64 = 125i64;
let Json.404 : U8 = CallByName Num.125 Json.405;
let Json.402 : List U8 = CallByName List.4 Json.403 Json.404;
ret Json.402;
procedure Json.128 (Json.401, Json.134):
let Json.132 : List U8 = StructAtIndex 0 Json.401;
inc Json.132;
let Json.133 : U64 = StructAtIndex 1 Json.401;
dec Json.401;
let Json.420 : {} = Struct {};
let Json.135 : List U8 = CallByName Encode.23 Json.132 Json.134 Json.420;
joinpoint Json.415 Json.136:
let Json.413 : U64 = 1i64;
let Json.412 : U64 = CallByName Num.20 Json.133 Json.413;
let Json.411 : {List U8, U64} = Struct {Json.136, Json.412};
ret Json.411;
in
let Json.419 : U64 = 1i64;
let Json.416 : Int1 = CallByName Num.24 Json.133 Json.419;
if Json.416 then
let Json.418 : I64 = 44i64;
let Json.417 : U8 = CallByName Num.125 Json.418;
let Json.414 : List U8 = CallByName List.4 Json.135 Json.417;
jump Json.415 Json.414;
else
jump Json.415 Json.135;
procedure Json.18 (Json.95):
let Json.453 : Str = CallByName Encode.22 Json.95;
ret Json.453;
procedure Json.21 (Json.124, Json.125):
let Json.439 : {Str, List Str} = Struct {Json.124, Json.125};
let Json.438 : {Str, List Str} = CallByName Encode.22 Json.439;
ret Json.438;
procedure Json.96 (Json.97, Json.443, Json.95):
let Json.452 : I64 = 34i64;
let Json.451 : U8 = CallByName Num.125 Json.452;
let Json.449 : List U8 = CallByName List.4 Json.97 Json.451;
let Json.450 : List U8 = CallByName Str.12 Json.95;
let Json.446 : List U8 = CallByName List.8 Json.449 Json.450;
let Json.448 : I64 = 34i64;
let Json.447 : U8 = CallByName Num.125 Json.448;
let Json.445 : List U8 = CallByName List.4 Json.446 Json.447;
ret Json.445;
procedure List.138 (List.139, List.140, List.137):
let List.529 : {List U8, U64} = CallByName Json.128 List.139 List.140;
ret List.529;
procedure List.18 (List.135, List.136, List.137):
let List.510 : {List U8, U64} = CallByName List.90 List.135 List.136 List.137;
ret List.510;
procedure List.4 (List.106, List.107):
let List.509 : U64 = 1i64;
let List.508 : List U8 = CallByName List.70 List.106 List.509;
let List.507 : List U8 = CallByName List.71 List.508 List.107;
ret List.507;
procedure List.6 (#Attr.2):
let List.530 : U64 = lowlevel ListLen #Attr.2;
ret List.530;
procedure List.66 (#Attr.2, #Attr.3):
let List.526 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.526;
procedure List.70 (#Attr.2, #Attr.3):
let List.482 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.482;
procedure List.71 (#Attr.2, #Attr.3):
let List.480 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.480;
procedure List.8 (#Attr.2, #Attr.3):
let List.532 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.532;
procedure List.90 (List.426, List.427, List.428):
let List.514 : U64 = 0i64;
let List.515 : U64 = CallByName List.6 List.426;
let List.513 : {List U8, U64} = CallByName List.91 List.426 List.427 List.428 List.514 List.515;
ret List.513;
procedure List.91 (List.542, List.543, List.544, List.545, List.546):
joinpoint List.516 List.429 List.430 List.431 List.432 List.433:
let List.518 : Int1 = CallByName Num.22 List.432 List.433;
if List.518 then
let List.525 : Str = CallByName List.66 List.429 List.432;
let List.519 : {List U8, U64} = CallByName List.138 List.430 List.525 List.431;
let List.522 : U64 = 1i64;
let List.521 : U64 = CallByName Num.19 List.432 List.522;
jump List.516 List.429 List.519 List.431 List.521 List.433;
else
ret List.430;
in
jump List.516 List.542 List.543 List.544 List.545 List.546;
procedure Num.125 (#Attr.2):
let Num.265 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.265;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.268 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.268;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.266 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.266;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.269 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.269;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.267 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.267;
procedure Str.12 (#Attr.2):
let Str.266 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.266;
procedure Test.2 (Test.10):
let Test.15 : {Str, Str} = CallByName Encode.22 Test.10;
ret Test.15;
procedure Test.3 ():
let Test.9 : Str = "";
inc Test.9;
let Test.14 : {Str, Str} = Struct {Test.9, Test.9};
ret Test.14;
procedure Test.5 (Test.6, Test.7, Test.4):
joinpoint Test.20 Test.8:
let Test.18 : List U8 = CallByName Encode.23 Test.6 Test.8 Test.7;
ret Test.18;
in
let Test.25 : Int1 = CallByName Bool.2;
if Test.25 then
let Test.26 : Str = "A";
let Test.29 : Str = StructAtIndex 0 Test.4;
inc Test.29;
dec Test.4;
let Test.28 : Str = CallByName Json.18 Test.29;
let Test.27 : List Str = Array [Test.28];
let Test.19 : {Str, List Str} = CallByName Json.21 Test.26 Test.27;
jump Test.20 Test.19;
else
let Test.21 : Str = "B";
let Test.24 : Str = StructAtIndex 1 Test.4;
inc Test.24;
dec Test.4;
let Test.23 : Str = CallByName Json.18 Test.24;
let Test.22 : List Str = Array [Test.23];
let Test.19 : {Str, List Str} = CallByName Json.21 Test.21 Test.22;
jump Test.20 Test.19;
procedure Test.0 ():
let Test.12 : {Str, Str} = CallByName Test.3;
let Test.13 : {} = CallByName Json.1;
let Test.11 : List U8 = CallByName Encode.25 Test.12 Test.13;
ret Test.11;

View file

@ -0,0 +1,82 @@
procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure Test.12 (Test.52):
let Test.75 : Int1 = false;
ret Test.75;
procedure Test.13 (Test.51):
let Test.83 : Int1 = true;
ret Test.83;
procedure Test.14 (Test.50):
ret Test.50;
procedure Test.15 (Test.49):
let Test.74 : {} = Struct {};
let Test.73 : Int1 = CallByName Test.12 Test.74;
ret Test.73;
procedure Test.16 (Test.48):
let Test.82 : {} = Struct {};
let Test.81 : Int1 = CallByName Test.13 Test.82;
ret Test.81;
procedure Test.17 (Test.47):
ret Test.47;
procedure Test.35 (Test.36, Test.76):
inc Test.36;
ret Test.36;
procedure Test.37 (Test.38, Test.84):
inc Test.38;
ret Test.38;
procedure Test.40 (Test.41, Test.65, Test.39):
let Test.68 : {} = Struct {};
joinpoint Test.69 Test.67:
ret Test.67;
in
switch Test.39:
case 0:
let Test.70 : List U8 = CallByName Test.35 Test.41 Test.68;
jump Test.69 Test.70;
default:
let Test.71 : List U8 = CallByName Test.37 Test.41 Test.68;
jump Test.69 Test.71;
procedure Test.43 (Test.44, Test.42):
joinpoint Test.62 Test.60:
let Test.59 : List U8 = Array [];
let Test.58 : List U8 = CallByName Test.40 Test.59 Test.44 Test.60;
dec Test.59;
ret Test.58;
in
let Test.78 : Int1 = CallByName Bool.2;
if Test.78 then
let Test.80 : Str = StructAtIndex 0 Test.42;
inc Test.80;
dec Test.42;
let Test.79 : Int1 = CallByName Test.16 Test.80;
dec Test.80;
let Test.61 : Int1 = CallByName Test.14 Test.79;
jump Test.62 Test.61;
else
let Test.72 : U8 = StructAtIndex 1 Test.42;
dec Test.42;
let Test.63 : Int1 = CallByName Test.15 Test.72;
let Test.61 : Int1 = CallByName Test.14 Test.63;
jump Test.62 Test.61;
procedure Test.0 ():
let Test.86 : Str = "";
let Test.87 : U8 = 7i64;
let Test.55 : {Str, U8} = Struct {Test.86, Test.87};
let Test.46 : {Str, U8} = CallByName Test.17 Test.55;
let Test.54 : {} = Struct {};
let Test.53 : List U8 = CallByName Test.43 Test.54 Test.46;
ret Test.53;

View file

@ -0,0 +1,374 @@
procedure #Derived.0 (#Derived.1):
let #Derived_gen.10 : [C {}, C {}] = TagId(0) #Derived.1;
let #Derived_gen.9 : [C {}, C {}] = CallByName Encode.22 #Derived_gen.10;
ret #Derived_gen.9;
procedure #Derived.2 (#Derived.3, #Derived.4, #Attr.12):
let #Derived.1 : {} = UnionAtIndex (Id 0) (Index 0) #Attr.12;
joinpoint #Derived_gen.14 #Derived_gen.13:
let #Derived_gen.12 : List U8 = CallByName Encode.23 #Derived.3 #Derived_gen.13 #Derived.4;
ret #Derived_gen.12;
in
let #Derived_gen.16 : Str = "A";
let #Derived_gen.17 : List [] = Array [];
let #Derived_gen.15 : {Str, List []} = CallByName Json.21 #Derived_gen.16 #Derived_gen.17;
jump #Derived_gen.14 #Derived_gen.15;
procedure #Derived.5 (#Derived.6):
let #Derived_gen.1 : [C {}, C {}] = TagId(1) #Derived.6;
let #Derived_gen.0 : [C {}, C {}] = CallByName Encode.22 #Derived_gen.1;
ret #Derived_gen.0;
procedure #Derived.7 (#Derived.8, #Derived.9, #Attr.12):
let #Derived.6 : {} = UnionAtIndex (Id 1) (Index 0) #Attr.12;
joinpoint #Derived_gen.5 #Derived_gen.4:
let #Derived_gen.3 : List U8 = CallByName Encode.23 #Derived.8 #Derived_gen.4 #Derived.9;
ret #Derived_gen.3;
in
let #Derived_gen.7 : Str = "B";
let #Derived_gen.8 : List [] = Array [];
let #Derived_gen.6 : {Str, List []} = CallByName Json.21 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.22 (Encode.93):
ret Encode.93;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.106 : List U8 = CallByName Test.5 Encode.94 Encode.96 Encode.102;
ret Encode.106;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.113 : List U8 = CallByName Json.126 Encode.94 Encode.96 Encode.102;
ret Encode.113;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.117 : U8 = GetTagId Encode.102;
joinpoint Encode.118 Encode.116:
ret Encode.116;
in
switch Encode.117:
case 0:
let Encode.119 : List U8 = CallByName #Derived.2 Encode.94 Encode.96 Encode.102;
jump Encode.118 Encode.119;
default:
let Encode.120 : List U8 = CallByName #Derived.7 Encode.94 Encode.96 Encode.102;
jump Encode.118 Encode.120;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.132 : List U8 = CallByName Json.126 Encode.94 Encode.96 Encode.102;
ret Encode.132;
procedure Encode.23 (Encode.94, Encode.102, Encode.96):
let Encode.136 : Str = "a Lambda Set is empty. Most likely there is a type error in your program.";
Crash Encode.136
procedure Encode.25 (Encode.100, Encode.101):
let Encode.104 : List U8 = Array [];
let Encode.105 : {{}, {}} = CallByName Test.2 Encode.100;
let Encode.103 : List U8 = CallByName Encode.23 Encode.104 Encode.105 Encode.101;
ret Encode.103;
procedure Json.1 ():
let Json.396 : {} = Struct {};
ret Json.396;
procedure Json.126 (Json.127, Json.399, #Attr.12):
let Json.125 : List [C {}, C {}] = StructAtIndex 1 #Attr.12;
inc Json.125;
let Json.124 : Str = StructAtIndex 0 #Attr.12;
inc Json.124;
dec #Attr.12;
let Json.437 : I64 = 123i64;
let Json.436 : U8 = CallByName Num.125 Json.437;
let Json.433 : List U8 = CallByName List.4 Json.127 Json.436;
let Json.435 : I64 = 34i64;
let Json.434 : U8 = CallByName Num.125 Json.435;
let Json.431 : List U8 = CallByName List.4 Json.433 Json.434;
let Json.432 : List U8 = CallByName Str.12 Json.124;
let Json.428 : List U8 = CallByName List.8 Json.431 Json.432;
let Json.430 : I64 = 34i64;
let Json.429 : U8 = CallByName Num.125 Json.430;
let Json.425 : List U8 = CallByName List.4 Json.428 Json.429;
let Json.427 : I64 = 58i64;
let Json.426 : U8 = CallByName Num.125 Json.427;
let Json.422 : List U8 = CallByName List.4 Json.425 Json.426;
let Json.424 : I64 = 91i64;
let Json.423 : U8 = CallByName Num.125 Json.424;
let Json.129 : List U8 = CallByName List.4 Json.422 Json.423;
let Json.421 : U64 = CallByName List.6 Json.125;
let Json.409 : {List U8, U64} = Struct {Json.129, Json.421};
let Json.410 : {} = Struct {};
let Json.408 : {List U8, U64} = CallByName List.18 Json.125 Json.409 Json.410;
dec Json.125;
let Json.131 : List U8 = StructAtIndex 0 Json.408;
inc Json.131;
dec Json.408;
let Json.407 : I64 = 93i64;
let Json.406 : U8 = CallByName Num.125 Json.407;
let Json.403 : List U8 = CallByName List.4 Json.131 Json.406;
let Json.405 : I64 = 125i64;
let Json.404 : U8 = CallByName Num.125 Json.405;
let Json.402 : List U8 = CallByName List.4 Json.403 Json.404;
ret Json.402;
procedure Json.126 (Json.127, Json.399, #Attr.12):
let Json.125 : List [] = StructAtIndex 1 #Attr.12;
inc Json.125;
let Json.124 : Str = StructAtIndex 0 #Attr.12;
inc Json.124;
dec #Attr.12;
let Json.487 : I64 = 123i64;
let Json.486 : U8 = CallByName Num.125 Json.487;
let Json.483 : List U8 = CallByName List.4 Json.127 Json.486;
let Json.485 : I64 = 34i64;
let Json.484 : U8 = CallByName Num.125 Json.485;
let Json.481 : List U8 = CallByName List.4 Json.483 Json.484;
let Json.482 : List U8 = CallByName Str.12 Json.124;
let Json.478 : List U8 = CallByName List.8 Json.481 Json.482;
let Json.480 : I64 = 34i64;
let Json.479 : U8 = CallByName Num.125 Json.480;
let Json.475 : List U8 = CallByName List.4 Json.478 Json.479;
let Json.477 : I64 = 58i64;
let Json.476 : U8 = CallByName Num.125 Json.477;
let Json.472 : List U8 = CallByName List.4 Json.475 Json.476;
let Json.474 : I64 = 91i64;
let Json.473 : U8 = CallByName Num.125 Json.474;
let Json.129 : List U8 = CallByName List.4 Json.472 Json.473;
let Json.471 : U64 = CallByName List.6 Json.125;
let Json.459 : {List U8, U64} = Struct {Json.129, Json.471};
let Json.460 : {} = Struct {};
let Json.458 : {List U8, U64} = CallByName List.18 Json.125 Json.459 Json.460;
dec Json.125;
let Json.131 : List U8 = StructAtIndex 0 Json.458;
inc Json.131;
dec Json.458;
let Json.457 : I64 = 93i64;
let Json.456 : U8 = CallByName Num.125 Json.457;
let Json.453 : List U8 = CallByName List.4 Json.131 Json.456;
let Json.455 : I64 = 125i64;
let Json.454 : U8 = CallByName Num.125 Json.455;
let Json.452 : List U8 = CallByName List.4 Json.453 Json.454;
ret Json.452;
procedure Json.128 (Json.401, Json.134):
let Json.132 : List U8 = StructAtIndex 0 Json.401;
inc Json.132;
let Json.133 : U64 = StructAtIndex 1 Json.401;
dec Json.401;
let Json.420 : {} = Struct {};
let Json.135 : List U8 = CallByName Encode.23 Json.132 Json.134 Json.420;
joinpoint Json.415 Json.136:
let Json.413 : U64 = 1i64;
let Json.412 : U64 = CallByName Num.20 Json.133 Json.413;
let Json.411 : {List U8, U64} = Struct {Json.136, Json.412};
ret Json.411;
in
let Json.419 : U64 = 1i64;
let Json.416 : Int1 = CallByName Num.24 Json.133 Json.419;
if Json.416 then
let Json.418 : I64 = 44i64;
let Json.417 : U8 = CallByName Num.125 Json.418;
let Json.414 : List U8 = CallByName List.4 Json.135 Json.417;
jump Json.415 Json.414;
else
jump Json.415 Json.135;
procedure Json.128 (Json.401, Json.134):
let Json.132 : List U8 = StructAtIndex 0 Json.401;
inc Json.132;
let Json.133 : U64 = StructAtIndex 1 Json.401;
dec Json.401;
let Json.470 : {} = Struct {};
let Json.135 : List U8 = CallByName Encode.23 Json.132 Json.134 Json.470;
dec Json.132;
joinpoint Json.465 Json.136:
let Json.463 : U64 = 1i64;
let Json.462 : U64 = CallByName Num.20 Json.133 Json.463;
let Json.461 : {List U8, U64} = Struct {Json.136, Json.462};
ret Json.461;
in
let Json.469 : U64 = 1i64;
let Json.466 : Int1 = CallByName Num.24 Json.133 Json.469;
if Json.466 then
let Json.468 : I64 = 44i64;
let Json.467 : U8 = CallByName Num.125 Json.468;
let Json.464 : List U8 = CallByName List.4 Json.135 Json.467;
jump Json.465 Json.464;
else
jump Json.465 Json.135;
procedure Json.21 (Json.124, Json.125):
let Json.439 : {Str, List [C {}, C {}]} = Struct {Json.124, Json.125};
let Json.438 : {Str, List [C {}, C {}]} = CallByName Encode.22 Json.439;
ret Json.438;
procedure Json.21 (Json.124, Json.125):
let Json.489 : {Str, List []} = Struct {Json.124, Json.125};
let Json.488 : {Str, List []} = CallByName Encode.22 Json.489;
ret Json.488;
procedure List.138 (List.139, List.140, List.137):
let List.523 : {List U8, U64} = CallByName Json.128 List.139 List.140;
ret List.523;
procedure List.138 (List.139, List.140, List.137):
let List.596 : {List U8, U64} = CallByName Json.128 List.139 List.140;
ret List.596;
procedure List.18 (List.135, List.136, List.137):
let List.504 : {List U8, U64} = CallByName List.90 List.135 List.136 List.137;
ret List.504;
procedure List.18 (List.135, List.136, List.137):
let List.577 : {List U8, U64} = CallByName List.90 List.135 List.136 List.137;
ret List.577;
procedure List.4 (List.106, List.107):
let List.576 : U64 = 1i64;
let List.575 : List U8 = CallByName List.70 List.106 List.576;
let List.574 : List U8 = CallByName List.71 List.575 List.107;
ret List.574;
procedure List.6 (#Attr.2):
let List.524 : U64 = lowlevel ListLen #Attr.2;
ret List.524;
procedure List.6 (#Attr.2):
let List.597 : U64 = lowlevel ListLen #Attr.2;
ret List.597;
procedure List.66 (#Attr.2, #Attr.3):
let List.520 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.520;
procedure List.66 (#Attr.2, #Attr.3):
let List.593 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.593;
procedure List.70 (#Attr.2, #Attr.3):
let List.555 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.555;
procedure List.71 (#Attr.2, #Attr.3):
let List.553 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.553;
procedure List.8 (#Attr.2, #Attr.3):
let List.598 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.598;
procedure List.90 (List.426, List.427, List.428):
let List.508 : U64 = 0i64;
let List.509 : U64 = CallByName List.6 List.426;
let List.507 : {List U8, U64} = CallByName List.91 List.426 List.427 List.428 List.508 List.509;
ret List.507;
procedure List.90 (List.426, List.427, List.428):
let List.581 : U64 = 0i64;
let List.582 : U64 = CallByName List.6 List.426;
let List.580 : {List U8, U64} = CallByName List.91 List.426 List.427 List.428 List.581 List.582;
ret List.580;
procedure List.91 (List.535, List.536, List.537, List.538, List.539):
joinpoint List.510 List.429 List.430 List.431 List.432 List.433:
let List.512 : Int1 = CallByName Num.22 List.432 List.433;
if List.512 then
let List.519 : [C {}, C {}] = CallByName List.66 List.429 List.432;
let List.513 : {List U8, U64} = CallByName List.138 List.430 List.519 List.431;
let List.516 : U64 = 1i64;
let List.515 : U64 = CallByName Num.19 List.432 List.516;
jump List.510 List.429 List.513 List.431 List.515 List.433;
else
ret List.430;
in
jump List.510 List.535 List.536 List.537 List.538 List.539;
procedure List.91 (List.608, List.609, List.610, List.611, List.612):
joinpoint List.583 List.429 List.430 List.431 List.432 List.433:
let List.585 : Int1 = CallByName Num.22 List.432 List.433;
if List.585 then
let List.592 : [] = CallByName List.66 List.429 List.432;
let List.586 : {List U8, U64} = CallByName List.138 List.430 List.592 List.431;
let List.589 : U64 = 1i64;
let List.588 : U64 = CallByName Num.19 List.432 List.589;
jump List.583 List.429 List.586 List.431 List.588 List.433;
else
ret List.430;
in
jump List.583 List.608 List.609 List.610 List.611 List.612;
procedure Num.125 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;
ret Num.284;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.287 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
ret Num.287;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.285 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.285;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.288 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.288;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.286;
procedure Str.12 (#Attr.2):
let Str.267 : List U8 = lowlevel StrToUtf8 #Attr.2;
ret Str.267;
procedure Test.2 (Test.11):
let Test.18 : {{}, {}} = CallByName Encode.22 Test.11;
ret Test.18;
procedure Test.3 ():
let Test.16 : {} = Struct {};
let Test.17 : {} = Struct {};
let Test.15 : {{}, {}} = Struct {Test.16, Test.17};
ret Test.15;
procedure Test.5 (Test.6, Test.7, Test.4):
joinpoint Test.23 Test.8:
let Test.21 : List U8 = CallByName Encode.23 Test.6 Test.8 Test.7;
ret Test.21;
in
let Test.28 : Int1 = CallByName Bool.2;
if Test.28 then
let Test.29 : Str = "A";
let Test.32 : {} = StructAtIndex 0 Test.4;
let Test.31 : [C {}, C {}] = CallByName #Derived.0 Test.32;
let Test.30 : List [C {}, C {}] = Array [Test.31];
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.21 Test.29 Test.30;
jump Test.23 Test.22;
else
let Test.24 : Str = "B";
let Test.27 : {} = StructAtIndex 1 Test.4;
let Test.26 : [C {}, C {}] = CallByName #Derived.5 Test.27;
let Test.25 : List [C {}, C {}] = Array [Test.26];
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.21 Test.24 Test.25;
jump Test.23 Test.22;
procedure Test.0 ():
let Test.13 : {{}, {}} = CallByName Test.3;
let Test.14 : {} = CallByName Json.1;
let Test.12 : List U8 = CallByName Encode.25 Test.13 Test.14;
ret Test.12;