Add mono test cases

This commit is contained in:
Ayaz Hafiz 2022-06-28 18:14:31 -04:00 committed by ayazhafiz
parent 806e2f5096
commit b69d538ea0
No known key found for this signature in database
GPG key ID: B443F7A3030C9AED
2 changed files with 127 additions and 0 deletions

View file

@ -0,0 +1,59 @@
procedure #Multimorphic.0 (Test.28, #Attr.12):
let Test.5 : U64 = UnionAtIndex (Id 0) (Index 0) #Attr.12;
let Test.30 : Str = "";
ret Test.30;
procedure #Multimorphic.1 (Test.20, #Attr.12):
let Test.5 : {} = UnionAtIndex (Id 1) (Index 0) #Attr.12;
let Test.22 : Str = "";
ret Test.22;
procedure Test.1 (Test.5):
let Test.19 : [C U64, C {}, C ] = ClosureTag(#Multimorphic.1) Test.5;
ret Test.19;
procedure Test.1 (Test.5):
let Test.27 : [C U64, C {}, C ] = ClosureTag(#Multimorphic.0) Test.5;
ret Test.27;
procedure Test.2 (Test.8):
let Test.24 : Str = "";
ret Test.24;
procedure Test.0 ():
let Test.3 : U8 = 0u8;
joinpoint Test.16 Test.4:
let Test.10 : {} = Struct {};
let Test.11 : U8 = GetTagId Test.4;
joinpoint Test.12 Test.9:
ret Test.9;
in
switch Test.11:
case 0:
let Test.13 : Str = CallByName #Multimorphic.0 Test.10 Test.4;
jump Test.12 Test.13;
case 1:
let Test.14 : Str = CallByName #Multimorphic.1 Test.10 Test.4;
jump Test.12 Test.14;
default:
let Test.15 : Str = CallByName Test.2 Test.10;
jump Test.12 Test.15;
in
switch Test.3:
case 0:
let Test.18 : {} = Struct {};
let Test.17 : [C U64, C {}, C ] = CallByName Test.1 Test.18;
jump Test.16 Test.17;
case 1:
let Test.2 : [C U64, C {}, C ] = ClosureTag(Test.2) ;
jump Test.16 Test.2;
default:
let Test.26 : U64 = 1i64;
let Test.25 : [C U64, C {}, C ] = CallByName Test.1 Test.26;
jump Test.16 Test.25;

View file

@ -0,0 +1,68 @@
procedure #Multimorphic.0 (Test.33, #Attr.12):
let Test.5 : U64 = UnionAtIndex (Id 0) (Index 0) #Attr.12;
dec #Attr.12;
let Test.35 : Str = "";
ret Test.35;
procedure #Multimorphic.1 (Test.21, #Attr.12):
let Test.5 : {} = UnionAtIndex (Id 1) (Index 0) #Attr.12;
dec #Attr.12;
let Test.23 : Str = "";
ret Test.23;
procedure Test.1 (Test.5):
let Test.20 : [C U64, C {}, C Str] = ClosureTag(#Multimorphic.1) Test.5;
ret Test.20;
procedure Test.1 (Test.5):
let Test.32 : [C U64, C {}, C Str] = ClosureTag(#Multimorphic.0) Test.5;
ret Test.32;
procedure Test.2 (Test.7):
let Test.26 : [C U64, C {}, C Str] = ClosureTag(Test.8) Test.7;
ret Test.26;
procedure Test.8 (Test.27, #Attr.12):
let Test.7 : Str = UnionAtIndex (Id 2) (Index 0) #Attr.12;
inc Test.7;
dec #Attr.12;
ret Test.7;
procedure Test.0 ():
let Test.3 : U8 = 0u8;
joinpoint Test.17 Test.4:
let Test.11 : {} = Struct {};
let Test.12 : U8 = GetTagId Test.4;
joinpoint Test.13 Test.10:
ret Test.10;
in
switch Test.12:
case 0:
let Test.14 : Str = CallByName #Multimorphic.0 Test.11 Test.4;
jump Test.13 Test.14;
case 1:
let Test.15 : Str = CallByName #Multimorphic.1 Test.11 Test.4;
jump Test.13 Test.15;
default:
let Test.16 : Str = CallByName Test.8 Test.11 Test.4;
jump Test.13 Test.16;
in
switch Test.3:
case 0:
let Test.19 : {} = Struct {};
let Test.18 : [C U64, C {}, C Str] = CallByName Test.1 Test.19;
jump Test.17 Test.18;
case 1:
let Test.25 : Str = "foo";
let Test.24 : [C U64, C {}, C Str] = CallByName Test.2 Test.25;
jump Test.17 Test.24;
default:
let Test.31 : U64 = 1i64;
let Test.30 : [C U64, C {}, C Str] = CallByName Test.1 Test.31;
jump Test.17 Test.30;