separate compiler and plugin tests
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
== foo ==
|
||||
fun foo() {
|
||||
val a = Array<Int>
|
||||
3
|
||||
a[10] = 4
|
||||
2
|
||||
a[10]
|
||||
100
|
||||
a[10] += 1
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(Array)
|
||||
r(Array<Int>)
|
||||
w(a)
|
||||
r(3)
|
||||
r(4)
|
||||
r(10)
|
||||
r(a)
|
||||
r(=)
|
||||
w(a[10])
|
||||
r(2)
|
||||
r(10)
|
||||
r(a)
|
||||
r(a[10])
|
||||
r(100)
|
||||
r(10)
|
||||
r(a)
|
||||
r(a[10])
|
||||
r(1)
|
||||
r(+=)
|
||||
w(a[10])
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,9 @@
|
||||
fun foo() {
|
||||
val a = Array<Int>
|
||||
3
|
||||
a[10] = 4
|
||||
2
|
||||
a[10]
|
||||
100
|
||||
a[10] += 1
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
== assignments ==
|
||||
fun assignments() : Unit {
|
||||
var x = 1
|
||||
x = 2
|
||||
x += 2
|
||||
|
||||
x = if (true) 1 else 2
|
||||
|
||||
val y = true && false
|
||||
val z = false && true
|
||||
|
||||
val t = Test();
|
||||
t.x = 1
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(1)
|
||||
w(x)
|
||||
r(2)
|
||||
w(x)
|
||||
r(x)
|
||||
r(2)
|
||||
r(+=)
|
||||
w(x)
|
||||
r(true)
|
||||
jf(l2)
|
||||
r(1)
|
||||
jmp(l3)
|
||||
l2:
|
||||
r(2)
|
||||
l3:
|
||||
w(x)
|
||||
r(true)
|
||||
jf(l4)
|
||||
r(false)
|
||||
l4:
|
||||
r(true && false)
|
||||
w(y)
|
||||
r(false)
|
||||
jf(l5)
|
||||
r(true)
|
||||
l5:
|
||||
r(false && true)
|
||||
w(z)
|
||||
r(Test)
|
||||
r(Test())
|
||||
w(t)
|
||||
r(1)
|
||||
r(t)
|
||||
r(=)
|
||||
w(t.x)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,17 @@
|
||||
class Test {
|
||||
var x : Int;
|
||||
}
|
||||
|
||||
fun assignments() : Unit {
|
||||
var x = 1
|
||||
x = 2
|
||||
x += 2
|
||||
|
||||
x = if (true) 1 else 2
|
||||
|
||||
val y = true && false
|
||||
val z = false && true
|
||||
|
||||
val t = Test();
|
||||
t.x = 1
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
== anonymous_0 ==
|
||||
{1}
|
||||
---------------------
|
||||
l2:
|
||||
<START>
|
||||
r(1)
|
||||
l3:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== 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 && true)
|
||||
r(a)
|
||||
jt(l5)
|
||||
r(false)
|
||||
l5:
|
||||
r(a || false)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
l2:
|
||||
<START>
|
||||
r(1)
|
||||
l3:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== foo ==
|
||||
fun foo(a : Boolean, b : Int) : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== genfun ==
|
||||
fun genfun<T>() : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== flfun ==
|
||||
fun flfun(f : fun () : Any) : Unit {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,23 @@
|
||||
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 : fun () : Any) : Unit {}
|
||||
@@ -0,0 +1,11 @@
|
||||
== empty ==
|
||||
fun empty() {}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1 @@
|
||||
fun empty() {}
|
||||
@@ -0,0 +1,19 @@
|
||||
== fail ==
|
||||
fun fail() : Nothing {
|
||||
throw java.lang.RuntimeException()
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(java)
|
||||
r(lang)
|
||||
r(java.lang)
|
||||
r(RuntimeException)
|
||||
r(RuntimeException())
|
||||
r(java.lang.RuntimeException())
|
||||
jmp(error)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,3 @@
|
||||
fun fail() : Nothing {
|
||||
throw java.lang.RuntimeException()
|
||||
}
|
||||
@@ -0,0 +1,508 @@
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l3)
|
||||
r(2)
|
||||
ret l1
|
||||
jmp(l4)
|
||||
l3:
|
||||
read (Unit)
|
||||
l2:
|
||||
l4:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== anonymous_0 ==
|
||||
{ () =>
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l3:
|
||||
<START>
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l5)
|
||||
ret l4
|
||||
jmp(l6)
|
||||
l5:
|
||||
read (Unit)
|
||||
l4:
|
||||
l6:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
@{ () =>
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
rf({ () =>
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
})
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
l3:
|
||||
<START>
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l5)
|
||||
ret l4
|
||||
jmp(l6)
|
||||
l5:
|
||||
read (Unit)
|
||||
l4:
|
||||
l6:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== anonymous_1 ==
|
||||
{ () =>
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l2:
|
||||
<START>
|
||||
jmp?(l4)
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l5)
|
||||
r(2)
|
||||
ret l3
|
||||
jmp(l6)
|
||||
l5:
|
||||
read (Unit)
|
||||
l4:
|
||||
l6:
|
||||
r(2)
|
||||
l3:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
@{ () =>
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
rf({ () =>
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
})
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
l2:
|
||||
<START>
|
||||
jmp?(l4)
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l5)
|
||||
r(2)
|
||||
ret l3
|
||||
jmp(l6)
|
||||
l5:
|
||||
read (Unit)
|
||||
l4:
|
||||
l6:
|
||||
r(2)
|
||||
l3:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
@ while(true) {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l2:
|
||||
l5:
|
||||
r(true)
|
||||
jf(l3)
|
||||
l4:
|
||||
jmp?(l6)
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
r(2)
|
||||
jmp(l3)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l6:
|
||||
l8:
|
||||
r(2)
|
||||
jmp(l2)
|
||||
l3:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
try {
|
||||
@ while(true) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
}
|
||||
5
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
l3:
|
||||
l6:
|
||||
r(true)
|
||||
jf(l4)
|
||||
l5:
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
jmp(l4)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l8:
|
||||
jmp(l3)
|
||||
l4:
|
||||
read (Unit)
|
||||
r(5)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3() {
|
||||
try {
|
||||
@ while(true) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
l3:
|
||||
l6:
|
||||
r(true)
|
||||
jf(l4)
|
||||
l5:
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
jmp(l4)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l8:
|
||||
jmp(l3)
|
||||
l4:
|
||||
read (Unit)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3(a : Int) {
|
||||
@ for (i in 1..a) {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(1)
|
||||
r(a)
|
||||
r(..)
|
||||
r(1..a)
|
||||
l3:
|
||||
jmp?(l2)
|
||||
l4:
|
||||
l5:
|
||||
jmp?(l6)
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
r(2)
|
||||
jmp(l4)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l6:
|
||||
l8:
|
||||
r(2)
|
||||
jmp?(l4)
|
||||
l2:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3(a : Int) {
|
||||
try {
|
||||
@ for (i in 1..a) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
}
|
||||
5
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
r(a)
|
||||
r(..)
|
||||
r(1..a)
|
||||
l4:
|
||||
jmp?(l3)
|
||||
l5:
|
||||
l6:
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
jmp(l5)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l8:
|
||||
jmp?(l5)
|
||||
l3:
|
||||
read (Unit)
|
||||
r(5)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== t3 ==
|
||||
fun t3(a : Int) {
|
||||
try {
|
||||
@ for (i in 1..a) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
r(a)
|
||||
r(..)
|
||||
r(1..a)
|
||||
l4:
|
||||
jmp?(l3)
|
||||
l5:
|
||||
l6:
|
||||
r(1)
|
||||
r(2)
|
||||
r(3)
|
||||
r(>)
|
||||
r(2 > 3)
|
||||
jf(l7)
|
||||
jmp(l5)
|
||||
jmp(l8)
|
||||
l7:
|
||||
read (Unit)
|
||||
l8:
|
||||
jmp?(l5)
|
||||
l3:
|
||||
read (Unit)
|
||||
l2:
|
||||
r(2)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== tf ==
|
||||
fun tf() {
|
||||
try {
|
||||
return 1
|
||||
}
|
||||
finally {
|
||||
return 2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
jmp?(l2)
|
||||
r(1)
|
||||
r(2)
|
||||
ret(*) l1
|
||||
ret(*) l1
|
||||
l2:
|
||||
r(2)
|
||||
ret(*) l1
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,133 @@
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
try {
|
||||
1
|
||||
@{ () =>
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
@{ () =>
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
return@
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
@ while(true) {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
try {
|
||||
@ while(true) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
}
|
||||
5
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3() {
|
||||
try {
|
||||
@ while(true) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
break @
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3(a : Int) {
|
||||
@ for (i in 1..a) {
|
||||
try {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun t3(a : Int) {
|
||||
try {
|
||||
@ for (i in 1..a) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
}
|
||||
5
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun t3(a : Int) {
|
||||
try {
|
||||
@ for (i in 1..a) {
|
||||
1
|
||||
if (2 > 3) {
|
||||
continue @
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun tf() {
|
||||
try {
|
||||
return 1
|
||||
}
|
||||
finally {
|
||||
return 2
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
== 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:
|
||||
read (Unit)
|
||||
l11:
|
||||
r(12)
|
||||
r(a)
|
||||
jf(l12)
|
||||
read (Unit)
|
||||
jmp(l13)
|
||||
l12:
|
||||
r(13)
|
||||
l13:
|
||||
r(14)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -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,50 @@
|
||||
== main ==
|
||||
fun main() {
|
||||
while(1 > 0) {
|
||||
2
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l2:
|
||||
l5:
|
||||
r(1)
|
||||
r(0)
|
||||
r(>)
|
||||
r(1 > 0)
|
||||
jf(l3)
|
||||
l4:
|
||||
r(2)
|
||||
jmp(l2)
|
||||
l3:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
== dowhile ==
|
||||
fun dowhile() {
|
||||
do {return}
|
||||
while(1 > 0)
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
l2:
|
||||
l4:
|
||||
ret l1
|
||||
l5:
|
||||
r(1)
|
||||
r(0)
|
||||
r(>)
|
||||
r(1 > 0)
|
||||
jt(l2)
|
||||
l3:
|
||||
read (Unit)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,10 @@
|
||||
fun main() {
|
||||
while(1 > 0) {
|
||||
2
|
||||
}
|
||||
}
|
||||
|
||||
fun dowhile() {
|
||||
do {return}
|
||||
while(1 > 0)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
== blockAndAndMismatch ==
|
||||
fun blockAndAndMismatch() : Boolean {
|
||||
false || (return false)
|
||||
}
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(false)
|
||||
jt(l2)
|
||||
r(false)
|
||||
ret(*) l1
|
||||
l2:
|
||||
r(false || (return false))
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1,3 @@
|
||||
fun blockAndAndMismatch() : Boolean {
|
||||
false || (return false)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
== short ==
|
||||
fun short() = 1
|
||||
---------------------
|
||||
l0:
|
||||
<START>
|
||||
r(1)
|
||||
l1:
|
||||
<END>
|
||||
error:
|
||||
<ERROR>
|
||||
=====================
|
||||
@@ -0,0 +1 @@
|
||||
fun short() = 1
|
||||
Reference in New Issue
Block a user