mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 11:52:19 +00:00
195 lines
8.5 KiB
Text
195 lines
8.5 KiB
Text
procedure Bool.1 ():
|
|
let Bool.25 : Int1 = false;
|
|
ret Bool.25;
|
|
|
|
procedure Bool.2 ():
|
|
let Bool.24 : Int1 = true;
|
|
ret Bool.24;
|
|
|
|
procedure List.194 (List.523, List.195, List.193):
|
|
let List.553 : Int1 = CallByName Test.1 List.195;
|
|
if List.553 then
|
|
let List.555 : {} = Struct {};
|
|
let List.554 : [C {}, C {}] = TagId(1) List.555;
|
|
ret List.554;
|
|
else
|
|
let List.552 : {} = Struct {};
|
|
let List.551 : [C {}, C {}] = TagId(0) List.552;
|
|
ret List.551;
|
|
|
|
procedure List.23 (#Attr.2, #Attr.3, #Attr.4):
|
|
let List.556 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListMap2 { xs: `#Attr.#arg1`, ys: `#Attr.#arg2` } #Attr.2 #Attr.3 Test.15 #Attr.4;
|
|
decref #Attr.3;
|
|
decref #Attr.2;
|
|
ret List.556;
|
|
|
|
procedure List.56 (List.192, List.193):
|
|
let List.532 : {} = Struct {};
|
|
let List.524 : [C {}, C {}] = CallByName List.93 List.192 List.532 List.193;
|
|
let List.529 : U8 = 1i64;
|
|
let List.530 : U8 = GetTagId List.524;
|
|
let List.531 : Int1 = lowlevel Eq List.529 List.530;
|
|
if List.531 then
|
|
let List.525 : Int1 = CallByName Bool.2;
|
|
ret List.525;
|
|
else
|
|
let List.526 : Int1 = CallByName Bool.1;
|
|
ret List.526;
|
|
|
|
procedure List.6 (#Attr.2):
|
|
let List.522 : U64 = lowlevel ListLen #Attr.2;
|
|
ret List.522;
|
|
|
|
procedure List.6 (#Attr.2):
|
|
let List.550 : U64 = lowlevel ListLen #Attr.2;
|
|
ret List.550;
|
|
|
|
procedure List.66 (#Attr.2, #Attr.3):
|
|
let List.549 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
ret List.549;
|
|
|
|
procedure List.80 (List.561, List.562, List.563, List.564, List.565):
|
|
joinpoint List.537 List.439 List.440 List.441 List.442 List.443:
|
|
let List.539 : Int1 = CallByName Num.22 List.442 List.443;
|
|
if List.539 then
|
|
let List.548 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.439 List.442;
|
|
inc List.548;
|
|
let List.540 : [C {}, C {}] = CallByName List.194 List.440 List.548 List.441;
|
|
let List.545 : U8 = 1i64;
|
|
let List.546 : U8 = GetTagId List.540;
|
|
let List.547 : Int1 = lowlevel Eq List.545 List.546;
|
|
if List.547 then
|
|
let List.444 : {} = UnionAtIndex (Id 1) (Index 0) List.540;
|
|
let List.543 : U64 = 1i64;
|
|
let List.542 : U64 = CallByName Num.19 List.442 List.543;
|
|
jump List.537 List.439 List.444 List.441 List.542 List.443;
|
|
else
|
|
dec List.439;
|
|
let List.445 : {} = UnionAtIndex (Id 0) (Index 0) List.540;
|
|
let List.544 : [C {}, C {}] = TagId(0) List.445;
|
|
ret List.544;
|
|
else
|
|
dec List.439;
|
|
let List.538 : [C {}, C {}] = TagId(1) List.440;
|
|
ret List.538;
|
|
in
|
|
jump List.537 List.561 List.562 List.563 List.564 List.565;
|
|
|
|
procedure List.93 (List.436, List.437, List.438):
|
|
let List.535 : U64 = 0i64;
|
|
let List.536 : U64 = CallByName List.6 List.436;
|
|
let List.534 : [C {}, C {}] = CallByName List.80 List.436 List.437 List.438 List.535 List.536;
|
|
ret List.534;
|
|
|
|
procedure Num.19 (#Attr.2, #Attr.3):
|
|
let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;
|
|
ret Num.283;
|
|
|
|
procedure Num.22 (#Attr.2, #Attr.3):
|
|
let Num.281 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
|
ret Num.281;
|
|
|
|
procedure Num.22 (#Attr.2, #Attr.3):
|
|
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
|
ret Num.284;
|
|
|
|
procedure Test.1 (Test.77):
|
|
joinpoint Test.26 Test.6:
|
|
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
|
let Test.66 : U8 = 0i64;
|
|
let Test.67 : U8 = GetTagId Test.65;
|
|
let Test.68 : Int1 = lowlevel Eq Test.66 Test.67;
|
|
if Test.68 then
|
|
let Test.57 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.58 : U8 = 0i64;
|
|
let Test.59 : U8 = GetTagId Test.57;
|
|
let Test.60 : Int1 = lowlevel Eq Test.58 Test.59;
|
|
if Test.60 then
|
|
let Test.50 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.8 : I64 = UnionAtIndex (Id 0) (Index 0) Test.50;
|
|
let Test.49 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
|
dec Test.50;
|
|
let Test.10 : I64 = UnionAtIndex (Id 0) (Index 0) Test.49;
|
|
joinpoint #Derived_gen.4:
|
|
let Test.27 : Int1 = CallByName Num.22 Test.8 Test.10;
|
|
ret Test.27;
|
|
in
|
|
let #Derived_gen.5 : Int1 = lowlevel RefCountIsUnique Test.49;
|
|
if #Derived_gen.5 then
|
|
decref Test.49;
|
|
jump #Derived_gen.4;
|
|
else
|
|
decref Test.49;
|
|
jump #Derived_gen.4;
|
|
else
|
|
let Test.39 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.42 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
|
let Test.41 : List [<r>C I64, C List *self] = Array [Test.42];
|
|
let Test.40 : [<r>C I64, C List *self] = TagId(1) Test.41;
|
|
let Test.38 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.39, Test.40};
|
|
jump Test.26 Test.38;
|
|
else
|
|
let Test.61 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.62 : U8 = 1i64;
|
|
let Test.63 : U8 = GetTagId Test.61;
|
|
let Test.64 : Int1 = lowlevel Eq Test.62 Test.63;
|
|
if Test.64 then
|
|
let Test.52 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.12 : List [<r>C I64, C List *self] = UnionAtIndex (Id 1) (Index 0) Test.52;
|
|
inc 2 Test.12;
|
|
let Test.51 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
|
dec Test.52;
|
|
let Test.14 : List [<r>C I64, C List *self] = UnionAtIndex (Id 1) (Index 0) Test.51;
|
|
inc Test.14;
|
|
joinpoint #Derived_gen.6:
|
|
let Test.35 : {} = Struct {};
|
|
let Test.33 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.23 Test.12 Test.14 Test.35;
|
|
let Test.34 : {} = Struct {};
|
|
let Test.29 : Int1 = CallByName List.56 Test.33 Test.34;
|
|
if Test.29 then
|
|
let Test.31 : U64 = CallByName List.6 Test.12;
|
|
dec Test.12;
|
|
let Test.32 : U64 = CallByName List.6 Test.14;
|
|
dec Test.14;
|
|
let Test.30 : Int1 = CallByName Num.22 Test.31 Test.32;
|
|
ret Test.30;
|
|
else
|
|
dec Test.12;
|
|
dec Test.14;
|
|
let Test.28 : Int1 = CallByName Bool.1;
|
|
ret Test.28;
|
|
in
|
|
let #Derived_gen.7 : Int1 = lowlevel RefCountIsUnique Test.51;
|
|
if #Derived_gen.7 then
|
|
decref Test.51;
|
|
jump #Derived_gen.6;
|
|
else
|
|
inc Test.14;
|
|
decref Test.51;
|
|
jump #Derived_gen.6;
|
|
else
|
|
let Test.48 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
|
|
let Test.47 : List [<r>C I64, C List *self] = Array [Test.48];
|
|
let Test.45 : [<r>C I64, C List *self] = TagId(1) Test.47;
|
|
let Test.46 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
|
|
let Test.44 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.45, Test.46};
|
|
jump Test.26 Test.44;
|
|
in
|
|
jump Test.26 Test.77;
|
|
|
|
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};
|
|
ret Test.36;
|
|
|
|
procedure Test.0 ():
|
|
let Test.76 : I64 = 10i64;
|
|
let Test.75 : [<r>C I64, C List *self] = TagId(0) Test.76;
|
|
let Test.74 : List [<r>C I64, C List *self] = Array [Test.75];
|
|
let Test.69 : [<r>C I64, C List *self] = TagId(1) Test.74;
|
|
let Test.73 : I64 = 20i64;
|
|
let Test.72 : [<r>C I64, C List *self] = TagId(0) Test.73;
|
|
let Test.71 : List [<r>C I64, C List *self] = Array [Test.72];
|
|
let Test.70 : [<r>C I64, C List *self] = TagId(1) Test.71;
|
|
let Test.25 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.69, Test.70};
|
|
let Test.24 : Int1 = CallByName Test.1 Test.25;
|
|
ret Test.24;
|