roc/crates/compiler/test_mono/generated/issue_4749.txt
Brendan Hansknecht a86c8d7994
update mono tests
2023-02-27 16:36:08 -08:00

316 lines
11 KiB
Text

procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.23;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.31 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.31;
procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.38 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.38;
procedure Bool.12 (#Attr.2, #Attr.3):
let Bool.30 : Int1 = lowlevel NotEq #Attr.2 #Attr.3;
ret Bool.30;
procedure Bool.7 (Bool.19, Bool.20):
let Bool.29 : Int1 = CallByName Bool.12 Bool.19 Bool.20;
ret Bool.29;
procedure Decode.23 (Decode.94):
ret Decode.94;
procedure Decode.24 (Decode.95, Decode.114, Decode.97):
let Decode.127 : {List U8, [C {}, C Str]} = CallByName Json.293 Decode.95 Decode.97;
ret Decode.127;
procedure Decode.25 (Decode.98, Decode.99):
let Decode.126 : {} = CallByName Json.41;
let Decode.125 : {List U8, [C {}, C Str]} = CallByName Decode.24 Decode.98 Decode.126 Decode.99;
ret Decode.125;
procedure Decode.26 (Decode.100, Decode.101):
let Decode.115 : {List U8, [C {}, C Str]} = CallByName Decode.25 Decode.100 Decode.101;
let Decode.103 : List U8 = StructAtIndex 0 Decode.115;
inc Decode.103;
let Decode.102 : [C {}, C Str] = StructAtIndex 1 Decode.115;
inc Decode.102;
dec Decode.115;
let Decode.118 : Int1 = CallByName List.1 Decode.103;
if Decode.118 then
dec Decode.103;
let Decode.122 : U8 = 1i64;
let Decode.123 : U8 = GetTagId Decode.102;
let Decode.124 : Int1 = lowlevel Eq Decode.122 Decode.123;
if Decode.124 then
let Decode.104 : Str = UnionAtIndex (Id 1) (Index 0) Decode.102;
inc Decode.104;
dec Decode.102;
let Decode.119 : [C [C List U8, C ], C Str] = TagId(1) Decode.104;
ret Decode.119;
else
dec Decode.102;
let Decode.121 : [C List U8, C ] = TagId(1) ;
let Decode.120 : [C [C List U8, C ], C Str] = TagId(0) Decode.121;
ret Decode.120;
else
dec Decode.102;
let Decode.117 : [C List U8, C ] = TagId(0) Decode.103;
let Decode.116 : [C [C List U8, C ], C Str] = TagId(0) Decode.117;
ret Decode.116;
procedure Json.139 (Json.452, Json.453):
joinpoint Json.421 Json.418 Json.138:
let Json.141 : List U8 = StructAtIndex 0 Json.418;
inc Json.141;
let Json.140 : List U8 = StructAtIndex 1 Json.418;
inc Json.140;
dec Json.418;
let Json.422 : [C {}, C U8] = CallByName List.9 Json.141;
let Json.436 : U8 = 1i64;
let Json.437 : U8 = GetTagId Json.422;
let Json.438 : Int1 = lowlevel Eq Json.436 Json.437;
if Json.438 then
let Json.142 : U8 = UnionAtIndex (Id 1) (Index 0) Json.422;
let Json.424 : Int1 = CallByName Json.283 Json.142;
if Json.424 then
let Json.434 : U64 = 1i64;
let Json.430 : {List U8, List U8} = CallByName List.52 Json.141 Json.434;
let Json.431 : {} = Struct {};
let Json.428 : List U8 = CallByName Json.143 Json.430;
let Json.429 : List U8 = CallByName List.4 Json.140 Json.142;
let Json.426 : {List U8, List U8} = Struct {Json.428, Json.429};
jump Json.421 Json.426 Json.138;
else
let Json.423 : {List U8, List U8} = Struct {Json.141, Json.140};
ret Json.423;
else
let Json.435 : {List U8, List U8} = Struct {Json.141, Json.140};
ret Json.435;
in
jump Json.421 Json.452 Json.453;
procedure Json.143 (Json.432):
let Json.433 : List U8 = StructAtIndex 1 Json.432;
inc Json.433;
dec Json.432;
ret Json.433;
procedure Json.2 ():
let Json.396 : {} = Struct {};
ret Json.396;
procedure Json.22 (Json.137, Json.138):
let Json.440 : List U8 = Array [];
let Json.420 : {List U8, List U8} = Struct {Json.137, Json.440};
let Json.419 : {List U8, List U8} = CallByName Json.139 Json.420 Json.138;
ret Json.419;
procedure Json.283 (Json.284):
let Json.442 : U8 = 34i64;
let Json.441 : Int1 = CallByName Bool.7 Json.284 Json.442;
ret Json.441;
procedure Json.293 (Json.294, Json.399):
let Json.400 : {List U8, [C {}, C Str]} = CallByName Json.40 Json.294;
ret Json.400;
procedure Json.40 (Json.276):
let Json.446 : U64 = 1i64;
inc Json.276;
let Json.445 : {List U8, List U8} = CallByName List.52 Json.276 Json.446;
let Json.277 : List U8 = StructAtIndex 0 Json.445;
inc Json.277;
let Json.279 : List U8 = StructAtIndex 1 Json.445;
inc Json.279;
dec Json.445;
let Json.444 : U8 = 34i64;
let Json.443 : List U8 = Array [Json.444];
let Json.404 : Int1 = CallByName Bool.11 Json.277 Json.443;
dec Json.443;
dec Json.277;
if Json.404 then
dec Json.276;
let Json.417 : {} = Struct {};
let Json.416 : {List U8, List U8} = CallByName Json.22 Json.279 Json.417;
let Json.282 : List U8 = StructAtIndex 0 Json.416;
inc Json.282;
let Json.281 : List U8 = StructAtIndex 1 Json.416;
inc Json.281;
dec Json.416;
let Json.405 : [C {U64, U8}, C Str] = CallByName Str.9 Json.281;
let Json.413 : U8 = 1i64;
let Json.414 : U8 = GetTagId Json.405;
let Json.415 : Int1 = lowlevel Eq Json.413 Json.414;
if Json.415 then
let Json.285 : Str = UnionAtIndex (Id 1) (Index 0) Json.405;
inc Json.285;
dec Json.405;
let Json.409 : U64 = 1i64;
let Json.408 : {List U8, List U8} = CallByName List.52 Json.282 Json.409;
let Json.287 : List U8 = StructAtIndex 1 Json.408;
inc Json.287;
dec Json.408;
let Json.407 : [C {}, C Str] = TagId(1) Json.285;
let Json.406 : {List U8, [C {}, C Str]} = Struct {Json.287, Json.407};
ret Json.406;
else
dec Json.405;
let Json.412 : {} = Struct {};
let Json.411 : [C {}, C Str] = TagId(0) Json.412;
let Json.410 : {List U8, [C {}, C Str]} = Struct {Json.282, Json.411};
ret Json.410;
else
dec Json.279;
let Json.403 : {} = Struct {};
let Json.402 : [C {}, C Str] = TagId(0) Json.403;
let Json.401 : {List U8, [C {}, C Str]} = Struct {Json.276, Json.402};
ret Json.401;
procedure Json.41 ():
let Json.398 : {} = Struct {};
let Json.397 : {} = CallByName Decode.23 Json.398;
ret Json.397;
procedure List.1 (List.94):
let List.494 : U64 = CallByName List.6 List.94;
let List.495 : U64 = 0i64;
let List.493 : Int1 = CallByName Bool.11 List.494 List.495;
ret List.493;
procedure List.2 (List.95, List.96):
let List.551 : U64 = CallByName List.6 List.95;
let List.547 : Int1 = CallByName Num.22 List.96 List.551;
if List.547 then
let List.549 : U8 = CallByName List.66 List.95 List.96;
let List.548 : [C {}, C U8] = TagId(1) List.549;
ret List.548;
else
let List.546 : {} = Struct {};
let List.545 : [C {}, C U8] = TagId(0) List.546;
ret List.545;
procedure List.4 (List.106, List.107):
let List.535 : U64 = 1i64;
let List.533 : List U8 = CallByName List.70 List.106 List.535;
let List.532 : List U8 = CallByName List.71 List.533 List.107;
ret List.532;
procedure List.49 (List.369, List.370):
let List.507 : U64 = StructAtIndex 0 List.370;
let List.508 : U64 = 0i64;
let List.505 : Int1 = CallByName Bool.11 List.507 List.508;
if List.505 then
dec List.369;
let List.506 : List U8 = Array [];
ret List.506;
else
let List.502 : U64 = StructAtIndex 1 List.370;
let List.503 : U64 = StructAtIndex 0 List.370;
let List.501 : List U8 = CallByName List.72 List.369 List.502 List.503;
ret List.501;
procedure List.52 (List.384, List.385):
let List.386 : U64 = CallByName List.6 List.384;
joinpoint List.530 List.387:
let List.528 : U64 = 0i64;
let List.527 : {U64, U64} = Struct {List.387, List.528};
inc List.384;
let List.388 : List U8 = CallByName List.49 List.384 List.527;
let List.526 : U64 = CallByName Num.20 List.386 List.387;
let List.525 : {U64, U64} = Struct {List.526, List.387};
let List.389 : List U8 = CallByName List.49 List.384 List.525;
let List.524 : {List U8, List U8} = Struct {List.388, List.389};
ret List.524;
in
let List.531 : Int1 = CallByName Num.24 List.386 List.385;
if List.531 then
jump List.530 List.385;
else
jump List.530 List.386;
procedure List.6 (#Attr.2):
let List.571 : U64 = lowlevel ListLen #Attr.2;
ret List.571;
procedure List.66 (#Attr.2, #Attr.3):
let List.550 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.550;
procedure List.70 (#Attr.2, #Attr.3):
let List.536 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.536;
procedure List.71 (#Attr.2, #Attr.3):
let List.534 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.534;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.504 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.504;
procedure List.9 (List.286):
let List.544 : U64 = 0i64;
let List.537 : [C {}, C U8] = CallByName List.2 List.286 List.544;
let List.541 : U8 = 1i64;
let List.542 : U8 = GetTagId List.537;
let List.543 : Int1 = lowlevel Eq List.541 List.542;
if List.543 then
let List.287 : U8 = UnionAtIndex (Id 1) (Index 0) List.537;
let List.538 : [C {}, C U8] = TagId(1) List.287;
ret List.538;
else
let List.540 : {} = Struct {};
let List.539 : [C {}, C U8] = TagId(0) List.540;
ret List.539;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.258 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.258;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.262 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.262;
procedure Num.24 (#Attr.2, #Attr.3):
let Num.261 : Int1 = lowlevel NumGt #Attr.2 #Attr.3;
ret Num.261;
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
let Str.274 : {U64, Str, Int1, U8} = lowlevel StrFromUtf8Range #Attr.2 #Attr.3 #Attr.4;
ret Str.274;
procedure Str.9 (Str.76):
let Str.272 : U64 = 0i64;
let Str.273 : U64 = CallByName List.6 Str.76;
let Str.77 : {U64, Str, Int1, U8} = CallByName Str.48 Str.76 Str.272 Str.273;
let Str.269 : Int1 = StructAtIndex 2 Str.77;
if Str.269 then
let Str.271 : Str = StructAtIndex 1 Str.77;
inc Str.271;
dec Str.77;
let Str.270 : [C {U64, U8}, C Str] = TagId(1) Str.271;
ret Str.270;
else
let Str.267 : U8 = StructAtIndex 3 Str.77;
let Str.268 : U64 = StructAtIndex 0 Str.77;
dec Str.77;
let Str.266 : {U64, U8} = Struct {Str.268, Str.267};
let Str.265 : [C {U64, U8}, C Str] = TagId(0) Str.266;
ret Str.265;
procedure Test.3 ():
let Test.0 : List U8 = Array [82i64, 111i64, 99i64];
let Test.8 : {} = CallByName Json.2;
inc Test.0;
let Test.1 : [C [C List U8, C ], C Str] = CallByName Decode.26 Test.0 Test.8;
let Test.7 : Str = "Roc";
let Test.6 : [C [C List U8, C ], C Str] = TagId(1) Test.7;
inc Test.1;
let Test.5 : Int1 = CallByName Bool.11 Test.1 Test.6;
expect Test.5;
let Test.4 : {} = Struct {};
ret Test.4;