Add tests for element -> pseudo-value mapping

This commit is contained in:
Alexey Sedunov
2014-05-19 18:32:03 +04:00
parent d2c055e9da
commit 4a5d2e6728
78 changed files with 3105 additions and 1 deletions
@@ -0,0 +1,21 @@
== AnonymousInitializers ==
class AnonymousInitializers() {
val k = 34
val i: Int
{
$i = 12
}
val j: Int
get() = 20
{
$i = 13
}
}
---------------------
34 <v0> NEW()
12 <v1> NEW()
13 <v2> NEW()
=====================
@@ -0,0 +1,12 @@
== foo ==
fun foo() {
{}
}
---------------------
{} <v0> NEW()
{ {} } <v0> COPY
=====================
== anonymous_0 ==
{}
---------------------
=====================
@@ -0,0 +1,9 @@
== fail ==
fun fail() : Nothing {
throw java.lang.RuntimeException()
}
---------------------
RuntimeException <v0> NEW()
RuntimeException() <v0> COPY
java.lang.RuntimeException() <v0> COPY
=====================
@@ -0,0 +1,8 @@
== foo ==
fun <T> foo() {
T
}
---------------------
T <v0> NEW()
{ T } <v0> COPY
=====================
@@ -0,0 +1,137 @@
== C ==
class C() {
val a: Int = 1
class object {
val x : Int
{
$x = 1
}
fun foo() {
val b : Int = 1
doSmth(b)
}
}
}
---------------------
1 <v0> NEW()
=====================
== doSmth ==
fun doSmth(i: Int) {}
---------------------
=====================
== test1 ==
fun test1() {
val a = object {
val x : Int
{
$x = 1
}
}
}
---------------------
1 <v0> NEW()
object { val x : Int { $x = 1 } } <v1> NEW()
=====================
== O ==
object O {
val x : Int
{
$x = 1
}
}
---------------------
1 <v0> NEW()
=====================
== test2 ==
fun test2() {
val b = 1
val a = object {
val x = b
}
}
---------------------
1 <v0> NEW()
b <v1> NEW()
object { val x = b } <v2> NEW()
=====================
== test3 ==
fun test3() {
val a = object {
val y : Int
fun inner_bar() {
y = 10
}
}
}
---------------------
object { val y : Int fun inner_bar() { y = 10 } } <v0> NEW()
=====================
== inner_bar ==
fun inner_bar() {
y = 10
}
---------------------
10 <v0> NEW()
=====================
== test4 ==
fun test4() {
val a = object {
val x : Int
val y : Int
{
$x = 1
}
fun ggg() {
y = 10
}
}
}
---------------------
1 <v0> NEW()
object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } <v1> NEW()
=====================
== ggg ==
fun ggg() {
y = 10
}
---------------------
10 <v0> NEW()
=====================
== test5 ==
fun test5() {
val a = object {
var x = 1
{
$x = 2
}
fun foo() {
x = 3
}
fun bar() {
x = 4
}
}
}
---------------------
1 <v0> NEW()
2 <v1> NEW()
object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } <v2> NEW()
=====================
== foo ==
fun foo() {
x = 3
}
---------------------
3 <v0> NEW()
=====================
== bar ==
fun bar() {
x = 4
}
---------------------
4 <v0> NEW()
=====================
@@ -0,0 +1,34 @@
== A ==
trait A {
fun foo() : Int
}
---------------------
=====================
== foo ==
fun foo() : Int
---------------------
=====================
== B ==
class B : A {
override fun foo() = 10
}
---------------------
=====================
== foo ==
override fun foo() = 10
---------------------
10 <v0> NEW()
=====================
== foo ==
fun foo(b: B) : Int {
val o = object : A by b {}
return o.foo()
}
---------------------
b <v1> NEW()
object : A by b {} <v2> NEW()
o <v3> NEW()
foo <v4> NEW(<v3>)
foo() <v4> COPY
o.foo() <v4> COPY
=====================
@@ -0,0 +1,32 @@
== f ==
fun f() {
class LocalClass() {
fun f() {
val x = ""
fun loc() {
val x3 = ""
}
}
}
}
---------------------
=====================
== f ==
fun f() {
val x = ""
fun loc() {
val x3 = ""
}
}
---------------------
"" <v0> NEW()
=====================
== loc ==
fun loc() {
val x3 = ""
}
---------------------
"" <v0> NEW()
=====================
@@ -0,0 +1,20 @@
== foo ==
fun foo() {
class B {
val a: Int
get() {
val b: Int
return b
}
}
}
---------------------
=====================
== get_a ==
get() {
val b: Int
return b
}
---------------------
b <v0> NEW()
=====================
@@ -0,0 +1,28 @@
== C ==
class C {
fun component1() = 1
fun component2() = 2
}
---------------------
=====================
== component1 ==
fun component1() = 1
---------------------
1 <v0> NEW()
=====================
== component2 ==
fun component2() = 2
---------------------
2 <v0> NEW()
=====================
== test ==
fun test(c: C) {
val (a, b) = c
val d = 1
}
---------------------
a <v2> NEW(<v1>)
b <v3> NEW(<v1>)
c <v1> NEW()
1 <v4> NEW()
=====================
@@ -0,0 +1,10 @@
== foo ==
fun foo(x: Int) {
val (a, b) = x
a
}
---------------------
x <v1> NEW()
a <v4> NEW()
{ val (a, b) = x a } <v4> COPY
=====================
@@ -0,0 +1,22 @@
== Delegate ==
class Delegate {
fun get(_this: Any, p: PropertyMetadata): Int = 0
}
---------------------
=====================
== get ==
fun get(_this: Any, p: PropertyMetadata): Int = 0
---------------------
0 <v2> NEW()
=====================
== a ==
val a = Delegate()
---------------------
Delegate <v0> NEW()
Delegate() <v0> COPY
=====================
== b ==
val b by a
---------------------
a <v0> NEW()
=====================
@@ -0,0 +1,13 @@
== C ==
class C {
val a: Int
get() = 1
{
$a
}
}
---------------------
$a <v0> NEW()
{ $a } <v0> COPY
=====================
@@ -0,0 +1,17 @@
== Bar ==
abstract class Bar {
abstract var bar : String
fun foo() = "foo" + this.$bar
}
---------------------
=====================
== foo ==
fun foo() = "foo" + this.$bar
---------------------
"foo" <v0> NEW()
+ <v3> NEW(<v0>, <v2>)
this <v1> NEW()
$bar <v2> NEW(<v1>)
this.$bar <v2> COPY
"foo" + this.$bar <v3> COPY
=====================