mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 19:58:18 +00:00
240 lines
11 KiB
Text
Generated
240 lines
11 KiB
Text
Generated
procedure Bool.1 ():
|
|
let Bool.25 : Int1 = false;
|
|
ret Bool.25;
|
|
|
|
procedure Bool.2 ():
|
|
let Bool.24 : Int1 = true;
|
|
ret Bool.24;
|
|
|
|
procedure List.102 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
|
|
joinpoint List.676 List.287 List.288 List.289 List.290 List.291 List.292:
|
|
let List.678 : Int1 = CallByName Num.22 List.291 List.292;
|
|
if List.678 then
|
|
let List.684 : [<r>C I64, C List *self] = CallByName List.66 List.287 List.291;
|
|
inc List.684;
|
|
let List.685 : [<r>C I64, C List *self] = CallByName List.66 List.288 List.291;
|
|
inc List.685;
|
|
let List.293 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.684 List.685;
|
|
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.682 : U64 = 1i64;
|
|
let List.681 : U64 = CallByName Num.51 List.291 List.682;
|
|
jump List.676 List.287 List.288 List.680 List.290 List.681 List.292;
|
|
else
|
|
dec List.287;
|
|
dec List.288;
|
|
ret List.289;
|
|
in
|
|
inc #Derived_gen.0;
|
|
inc #Derived_gen.1;
|
|
jump List.676 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
|
|
|
|
procedure List.112 (List.541, List.542, List.543):
|
|
let List.652 : U64 = 0i64;
|
|
let List.653 : U64 = CallByName List.6 List.541;
|
|
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;
|
|
|
|
procedure List.66 (#Attr.2, #Attr.3):
|
|
let List.686 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
ret List.686;
|
|
|
|
procedure List.68 (#Attr.2):
|
|
let List.687 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
|
ret List.687;
|
|
|
|
procedure List.71 (#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.683;
|
|
|
|
procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
|
|
joinpoint List.654 List.544 List.545 List.546 List.547 List.548:
|
|
let List.656 : Int1 = CallByName Num.22 List.547 List.548;
|
|
if List.656 then
|
|
let List.665 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.544 List.547;
|
|
inc List.665;
|
|
let List.657 : [C {}, C {}] = CallByName List.244 List.545 List.665 List.546;
|
|
let List.662 : U8 = 1i64;
|
|
let List.663 : U8 = GetTagId List.657;
|
|
let List.664 : Int1 = lowlevel Eq List.662 List.663;
|
|
if List.664 then
|
|
let List.549 : {} = UnionAtIndex (Id 1) (Index 0) List.657;
|
|
let List.660 : U64 = 1i64;
|
|
let List.659 : U64 = CallByName Num.51 List.547 List.660;
|
|
jump List.654 List.544 List.549 List.546 List.659 List.548;
|
|
else
|
|
dec List.544;
|
|
let List.550 : {} = UnionAtIndex (Id 0) (Index 0) List.657;
|
|
let List.661 : [C {}, C {}] = TagId(0) List.550;
|
|
ret List.661;
|
|
else
|
|
dec List.544;
|
|
let List.655 : [C {}, C {}] = TagId(1) List.545;
|
|
ret List.655;
|
|
in
|
|
inc #Derived_gen.7;
|
|
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):
|
|
let Num.288 : Int1 = CallByName Num.22 Num.225 Num.226;
|
|
if Num.288 then
|
|
ret Num.225;
|
|
else
|
|
ret Num.226;
|
|
|
|
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.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
|
ret Num.286;
|
|
|
|
procedure Num.51 (#Attr.2, #Attr.3):
|
|
let Num.284 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
|
ret Num.284;
|
|
|
|
procedure Test.1 (#Derived_gen.6):
|
|
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.12:
|
|
let Test.27 : Int1 = CallByName Num.22 Test.8 Test.10;
|
|
ret Test.27;
|
|
in
|
|
let #Derived_gen.13 : Int1 = lowlevel RefCountIsUnique Test.49;
|
|
if #Derived_gen.13 then
|
|
free Test.49;
|
|
jump #Derived_gen.12;
|
|
else
|
|
decref Test.49;
|
|
jump #Derived_gen.12;
|
|
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 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;
|
|
joinpoint #Derived_gen.14:
|
|
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;
|
|
dec Test.33;
|
|
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.15 : Int1 = lowlevel RefCountIsUnique Test.51;
|
|
if #Derived_gen.15 then
|
|
free Test.51;
|
|
jump #Derived_gen.14;
|
|
else
|
|
inc Test.14;
|
|
decref Test.51;
|
|
jump #Derived_gen.14;
|
|
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 #Derived_gen.6;
|
|
|
|
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;
|