separate compiler and plugin tests

This commit is contained in:
Dmitry Jemerov
2011-10-20 16:19:02 +02:00
parent a80398098b
commit ec6dec0d37
586 changed files with 69 additions and 42 deletions
@@ -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>
=====================
+9
View File
@@ -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>
=====================
+17
View File
@@ -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
}
+114
View File
@@ -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>
=====================
+23
View File
@@ -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>
=====================
+1
View File
@@ -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>
=====================
+3
View File
@@ -0,0 +1,3 @@
fun fail() : Nothing {
throw java.lang.RuntimeException()
}
+508
View File
@@ -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>
=====================
+133
View File
@@ -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>
=====================
+17
View File
@@ -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>
=====================
+1
View File
@@ -0,0 +1 @@
fun short() = 1