mirror of
https://github.com/roc-lang/roc.git
synced 2025-11-01 21:40:58 +00:00
240 lines
10 KiB
Text
Generated
240 lines
10 KiB
Text
Generated
procedure Bool.1 ():
|
|
let Bool.23 : Int1 = false;
|
|
ret Bool.23;
|
|
|
|
procedure Bool.2 ():
|
|
let Bool.22 : Int1 = true;
|
|
ret Bool.22;
|
|
|
|
procedure List.106 (Bool.30, Bool.31, Bool.32, Bool.33, Bool.34, Bool.35):
|
|
joinpoint List.713 List.291 List.292 List.293 List.294 List.295 List.296:
|
|
let List.715 : Int1 = CallByName Num.22 List.295 List.296;
|
|
if List.715 then
|
|
let List.721 : [<r>C I64, C List *self] = CallByName List.66 List.291 List.295;
|
|
inc List.721;
|
|
let List.722 : [<r>C I64, C List *self] = CallByName List.66 List.292 List.295;
|
|
inc List.722;
|
|
let List.297 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.721 List.722;
|
|
let List.717 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.293 List.297;
|
|
let List.719 : U64 = 1i64;
|
|
let List.718 : U64 = CallByName Num.51 List.295 List.719;
|
|
jump List.713 List.291 List.292 List.717 List.294 List.718 List.296;
|
|
else
|
|
dec List.291;
|
|
dec List.292;
|
|
ret List.293;
|
|
in
|
|
inc Bool.30;
|
|
inc Bool.31;
|
|
jump List.713 Bool.30 Bool.31 Bool.32 Bool.33 Bool.34 Bool.35;
|
|
|
|
procedure List.116 (List.563, List.564, List.565):
|
|
let List.689 : U64 = 0i64;
|
|
let List.690 : U64 = CallByName List.6 List.563;
|
|
let List.688 : [C {}, C {}] = CallByName List.80 List.563 List.564 List.565 List.689 List.690;
|
|
ret List.688;
|
|
|
|
procedure List.23 (List.287, List.288, List.289):
|
|
let List.725 : U64 = CallByName List.6 List.287;
|
|
let List.726 : U64 = CallByName List.6 List.288;
|
|
let List.290 : U64 = CallByName Num.148 List.725 List.726;
|
|
let List.711 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.290;
|
|
let List.712 : U64 = 0i64;
|
|
let List.710 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.106 List.287 List.288 List.711 List.289 List.712 List.290;
|
|
ret List.710;
|
|
|
|
procedure List.248 (List.677, List.249, List.247):
|
|
let List.707 : Int1 = CallByName Test.1 List.249;
|
|
if List.707 then
|
|
let List.709 : {} = Struct {};
|
|
let List.708 : [C {}, C {}] = TagId(1) List.709;
|
|
ret List.708;
|
|
else
|
|
let List.706 : {} = Struct {};
|
|
let List.705 : [C {}, C {}] = TagId(0) List.706;
|
|
ret List.705;
|
|
|
|
procedure List.56 (List.246, List.247):
|
|
let List.686 : {} = Struct {};
|
|
let List.678 : [C {}, C {}] = CallByName List.116 List.246 List.686 List.247;
|
|
let List.683 : U8 = 1i64;
|
|
let List.684 : U8 = GetTagId List.678;
|
|
let List.685 : Int1 = lowlevel Eq List.683 List.684;
|
|
if List.685 then
|
|
let List.679 : Int1 = CallByName Bool.2;
|
|
ret List.679;
|
|
else
|
|
let List.680 : Int1 = CallByName Bool.1;
|
|
ret List.680;
|
|
|
|
procedure List.6 (#Attr.2):
|
|
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
ret List.676;
|
|
|
|
procedure List.6 (#Attr.2):
|
|
let List.704 : U64 = lowlevel ListLenU64 #Attr.2;
|
|
ret List.704;
|
|
|
|
procedure List.66 (#Attr.2, #Attr.3):
|
|
let List.703 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
ret List.703;
|
|
|
|
procedure List.66 (#Attr.2, #Attr.3):
|
|
let List.723 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
|
|
ret List.723;
|
|
|
|
procedure List.68 (#Attr.2):
|
|
let List.724 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
|
|
ret List.724;
|
|
|
|
procedure List.71 (#Attr.2, #Attr.3):
|
|
let List.720 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
|
|
ret List.720;
|
|
|
|
procedure List.80 (Bool.25, Bool.26, Bool.27, Bool.28, Bool.29):
|
|
joinpoint List.691 List.566 List.567 List.568 List.569 List.570:
|
|
let List.693 : Int1 = CallByName Num.22 List.569 List.570;
|
|
if List.693 then
|
|
let List.702 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.566 List.569;
|
|
inc List.702;
|
|
let List.694 : [C {}, C {}] = CallByName List.248 List.567 List.702 List.568;
|
|
let List.699 : U8 = 1i64;
|
|
let List.700 : U8 = GetTagId List.694;
|
|
let List.701 : Int1 = lowlevel Eq List.699 List.700;
|
|
if List.701 then
|
|
let List.571 : {} = UnionAtIndex (Id 1) (Index 0) List.694;
|
|
let List.697 : U64 = 1i64;
|
|
let List.696 : U64 = CallByName Num.51 List.569 List.697;
|
|
jump List.691 List.566 List.571 List.568 List.696 List.570;
|
|
else
|
|
dec List.566;
|
|
let List.572 : {} = UnionAtIndex (Id 0) (Index 0) List.694;
|
|
let List.698 : [C {}, C {}] = TagId(0) List.572;
|
|
ret List.698;
|
|
else
|
|
dec List.566;
|
|
let List.692 : [C {}, C {}] = TagId(1) List.567;
|
|
ret List.692;
|
|
in
|
|
inc Bool.25;
|
|
jump List.691 Bool.25 Bool.26 Bool.27 Bool.28 Bool.29;
|
|
|
|
procedure Num.148 (Num.226, Num.227):
|
|
let Num.290 : Int1 = CallByName Num.22 Num.226 Num.227;
|
|
if Num.290 then
|
|
ret Num.226;
|
|
else
|
|
ret Num.227;
|
|
|
|
procedure Num.22 (#Attr.2, #Attr.3):
|
|
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
|
ret Num.283;
|
|
|
|
procedure Num.22 (#Attr.2, #Attr.3):
|
|
let Num.288 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
|
|
ret Num.288;
|
|
|
|
procedure Num.51 (#Attr.2, #Attr.3):
|
|
let Num.286 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
|
|
ret Num.286;
|
|
|
|
procedure Test.1 (Bool.24):
|
|
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 Bool.36:
|
|
let Test.27 : Int1 = CallByName Num.22 Test.8 Test.10;
|
|
ret Test.27;
|
|
in
|
|
let Bool.37 : Int1 = lowlevel RefCountIsUnique Test.49;
|
|
if Bool.37 then
|
|
free Test.49;
|
|
jump Bool.36;
|
|
else
|
|
decref Test.49;
|
|
jump Bool.36;
|
|
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 Bool.38:
|
|
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 Bool.39 : Int1 = lowlevel RefCountIsUnique Test.51;
|
|
if Bool.39 then
|
|
free Test.51;
|
|
jump Bool.38;
|
|
else
|
|
inc Test.14;
|
|
decref Test.51;
|
|
jump Bool.38;
|
|
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 Bool.24;
|
|
|
|
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;
|