Tests for basic control flow structures
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
== assignments ==
|
||||
fun assignments() : Unit {
|
||||
var x = 1
|
||||
x = 2
|
||||
|
||||
x = if (true) 1 else 2
|
||||
|
||||
val y = true && false
|
||||
val z = false && true
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(1)
|
||||
x <-
|
||||
r(2)
|
||||
x <-
|
||||
r(true)
|
||||
jf(l2)
|
||||
r(1)
|
||||
jmp(l3)
|
||||
l2:
|
||||
r(2)
|
||||
l3:
|
||||
x <-
|
||||
r(true)
|
||||
jf(l4)
|
||||
r(false)
|
||||
l4:
|
||||
y <-
|
||||
r(false)
|
||||
jf(l5)
|
||||
r(true)
|
||||
l5:
|
||||
z <-
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
@@ -0,0 +1,9 @@
|
||||
fun assignments() : Unit {
|
||||
var x = 1
|
||||
x = 2
|
||||
|
||||
x = if (true) 1 else 2
|
||||
|
||||
val y = true && false
|
||||
val z = false && true
|
||||
}
|
||||
@@ -1,6 +1,97 @@
|
||||
== anonymous_0 ==
|
||||
{1}
|
||||
---------------------
|
||||
l2:
|
||||
<START>
|
||||
r(1)
|
||||
l3:
|
||||
<END>
|
||||
=====================
|
||||
== f ==
|
||||
fun f(a : Boolean) : Unit {
|
||||
1
|
||||
a
|
||||
2.lng
|
||||
foo(a, 3)
|
||||
genfun<Any>()
|
||||
flfun {1}
|
||||
3.equals(4)
|
||||
|
||||
3 equals 4
|
||||
|
||||
1 + 2
|
||||
|
||||
a && true
|
||||
a || false
|
||||
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(1)
|
||||
r(a)
|
||||
r(2)
|
||||
r(lng)
|
||||
r(2.lng)
|
||||
r(a)
|
||||
r(3)
|
||||
r(foo)
|
||||
r(foo(a, 3))
|
||||
r(genfun)
|
||||
r(genfun<Any>())
|
||||
rf({1})
|
||||
r(flfun)
|
||||
r(flfun {1})
|
||||
r(3)
|
||||
r(4)
|
||||
r(equals)
|
||||
r(equals(4))
|
||||
r(3.equals(4))
|
||||
r(3)
|
||||
r(4)
|
||||
r(equals)
|
||||
r(3 equals 4)
|
||||
r(1)
|
||||
r(2)
|
||||
r(+)
|
||||
r(1 + 2)
|
||||
r(a)
|
||||
jf(l4)
|
||||
r(true)
|
||||
l4:
|
||||
r(a)
|
||||
jt(l5)
|
||||
r(false)
|
||||
l1:
|
||||
l5:
|
||||
<END>
|
||||
l2:
|
||||
<START>
|
||||
r(1)
|
||||
l3:
|
||||
<END>
|
||||
=====================
|
||||
== foo ==
|
||||
fun foo(a : Boolean, b : Int) : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
== genfun ==
|
||||
fun genfun<T>() : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
== flfun ==
|
||||
fun flfun(f : {() : Any}) : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
fun f(a : Boolean) {
|
||||
fun f(a : Boolean) : Unit {
|
||||
1
|
||||
a
|
||||
}
|
||||
2.lng
|
||||
foo(a, 3)
|
||||
genfun<Any>()
|
||||
flfun {1}
|
||||
3.equals(4)
|
||||
|
||||
3 equals 4
|
||||
|
||||
1 + 2
|
||||
|
||||
a && true
|
||||
a || false
|
||||
|
||||
}
|
||||
|
||||
fun foo(a : Boolean, b : Int) : Unit {}
|
||||
|
||||
fun genfun<T>() : Unit {}
|
||||
|
||||
fun flfun(f : {() : Any}) : Unit {}
|
||||
@@ -0,0 +1,68 @@
|
||||
== lazyBooleans ==
|
||||
fun lazyBooleans(a : Boolean, b : Boolean) : Unit {
|
||||
if (a) {
|
||||
1
|
||||
}
|
||||
else {
|
||||
2
|
||||
}
|
||||
3
|
||||
if (a && b) 5 else 6
|
||||
7
|
||||
if (a || b) 8 else 9
|
||||
10
|
||||
if (a) 11
|
||||
12
|
||||
if (a) else 13
|
||||
14
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(a)
|
||||
jf(l2)
|
||||
r(1)
|
||||
jmp(l3)
|
||||
l2:
|
||||
r(2)
|
||||
l3:
|
||||
r(3)
|
||||
r(a)
|
||||
jf(l4)
|
||||
r(b)
|
||||
l4:
|
||||
jf(l5)
|
||||
r(5)
|
||||
jmp(l6)
|
||||
l5:
|
||||
r(6)
|
||||
l6:
|
||||
r(7)
|
||||
r(a)
|
||||
jt(l7)
|
||||
r(b)
|
||||
l7:
|
||||
jf(l8)
|
||||
r(8)
|
||||
jmp(l9)
|
||||
l8:
|
||||
r(9)
|
||||
l9:
|
||||
r(10)
|
||||
r(a)
|
||||
jf(l10)
|
||||
r(11)
|
||||
jmp(l11)
|
||||
l10:
|
||||
l11:
|
||||
r(12)
|
||||
r(a)
|
||||
jf(l12)
|
||||
jmp(l13)
|
||||
l12:
|
||||
r(13)
|
||||
l13:
|
||||
r(14)
|
||||
l1:
|
||||
<END>
|
||||
=====================
|
||||
@@ -0,0 +1,17 @@
|
||||
fun lazyBooleans(a : Boolean, b : Boolean) : Unit {
|
||||
if (a) {
|
||||
1
|
||||
}
|
||||
else {
|
||||
2
|
||||
}
|
||||
3
|
||||
if (a && b) 5 else 6
|
||||
7
|
||||
if (a || b) 8 else 9
|
||||
10
|
||||
if (a) 11
|
||||
12
|
||||
if (a) else 13
|
||||
14
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
== foo ==
|
||||
fun foo() {
|
||||
if (b)
|
||||
return@a 1
|
||||
}
|
||||
---------------------
|
||||
l6:
|
||||
<START>
|
||||
r(b)
|
||||
jf(l8)
|
||||
r(1)
|
||||
ret(*)
|
||||
jmp(l9)
|
||||
l7:
|
||||
l8:
|
||||
l9:
|
||||
<END>
|
||||
=====================
|
||||
== anonymous_0 ==
|
||||
{a =>
|
||||
2
|
||||
fun foo() {
|
||||
if (b)
|
||||
return@a 1
|
||||
}
|
||||
|
||||
return@a 5;
|
||||
}
|
||||
---------------------
|
||||
l4:
|
||||
<START>
|
||||
r(2)
|
||||
r(5)
|
||||
ret(*)
|
||||
l5:
|
||||
<END>
|
||||
=====================
|
||||
== nonlocals1 ==
|
||||
fun nonlocals1(a : Boolean, b : Boolean) : Unit {
|
||||
if (a)
|
||||
return 1
|
||||
1
|
||||
@a{a =>
|
||||
2
|
||||
fun foo() {
|
||||
if (b)
|
||||
return@a 1
|
||||
}
|
||||
|
||||
return@a 5;
|
||||
}
|
||||
|
||||
1.lng
|
||||
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(a)
|
||||
jf(l2)
|
||||
r(1)
|
||||
ret(*)
|
||||
jmp(l3)
|
||||
l2:
|
||||
l3:
|
||||
r(1)
|
||||
rf({a =>
|
||||
2
|
||||
fun foo() {
|
||||
if (b)
|
||||
return@a 1
|
||||
}
|
||||
|
||||
return@a 5;
|
||||
})
|
||||
r(1)
|
||||
r(lng)
|
||||
r(1.lng)
|
||||
l1:
|
||||
<END>
|
||||
l4:
|
||||
<START>
|
||||
r(2)
|
||||
r(5)
|
||||
ret(*)
|
||||
l5:
|
||||
<END>
|
||||
=====================
|
||||
@@ -0,0 +1,17 @@
|
||||
fun nonlocals1(a : Boolean, b : Boolean) : Unit {
|
||||
if (a)
|
||||
return 1
|
||||
1
|
||||
@a{a =>
|
||||
2
|
||||
fun foo() {
|
||||
if (b)
|
||||
return@a 1
|
||||
}
|
||||
|
||||
return@a 5;
|
||||
}
|
||||
|
||||
1.lng
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user