Update box tests to 1.2.0-rc-39

This commit is contained in:
Pavel Punegov
2017-11-09 20:27:53 +03:00
committed by Pavel Punegov
parent 0121b6a185
commit ffa1ffa659
442 changed files with 20811 additions and 165 deletions
@@ -0,0 +1,24 @@
// LANGUAGE_VERSION: 1.2
enum class A {
X {
val x = "OK"
inner class Inner {
inner class Inner2 {
inner class Inner3 {
val y = x
}
}
}
val z = Inner().Inner2().Inner3()
override val test: String
get() = z.y
};
abstract val test: String
}
fun box() = A.X.test
@@ -0,0 +1,23 @@
// LANGUAGE_VERSION: 1.2
enum class A {
X {
val k = "K"
val anonObject = object {
inner class Inner {
val x = "O" + k
}
val innerX = Inner().x
override fun toString() = innerX
}
override val test = anonObject.toString()
};
abstract val test: String
}
fun box() = A.X.test
@@ -0,0 +1,24 @@
interface IFoo {
fun foo(): String
}
interface IBar {
fun bar(): String
}
abstract class Base(val x: IFoo)
enum class Test : IFoo, IBar {
FOO {
// FOO referenced from inner class constructor with uninitialized 'this'
inner class Inner : Base(FOO)
val z = Inner()
override fun foo() = "OK"
override fun bar() = z.x.foo()
}
}
fun box() = Test.FOO.bar()
@@ -0,0 +1,24 @@
interface IFoo {
fun foo(): String
}
interface IBar {
fun bar(): String
}
enum class Test : IFoo, IBar {
FOO {
// FOO referenced from inner class constructor with initialized 'this'
inner class Inner {
val fooFoo = FOO.foo()
}
val z = Inner()
override fun foo() = "OK"
override fun bar() = z.fooFoo
}
}
fun box() = Test.FOO.bar()
@@ -0,0 +1,23 @@
interface IFoo {
fun foo(): String
}
interface IBar {
fun bar(): String
}
enum class Test : IFoo, IBar {
FOO {
// FOO referenced from inner class constructor with initialized 'this',
// in delegate initializer
inner class Inner : IFoo by FOO
val z = Inner()
override fun foo() = "OK"
override fun bar() = z.foo()
}
}
fun box() = Test.FOO.bar()
@@ -0,0 +1,20 @@
// LANGUAGE_VERSION: 1.2
enum class A {
X {
val x = "OK"
inner class Inner {
val y = x
}
val z = Inner()
override val test: String
get() = z.y
};
abstract val test: String
}
fun box() = A.X.test
@@ -0,0 +1,19 @@
// LANGUAGE_VERSION: 1.2
enum class A {
X {
val x = "OK"
inner class Inner {
fun foo() = x
}
val z = Inner()
override val test = z.foo()
};
abstract val test: String
}
fun box() = A.X.test
@@ -0,0 +1,19 @@
// LANGUAGE_VERSION: 1.2
enum class A {
X {
val x = "OK"
inner class Inner {
fun foo() = this@X.x
}
val z = Inner()
override val test = z.foo()
};
abstract val test: String
}
fun box() = A.X.test
@@ -0,0 +1,14 @@
enum class Test(val x: String, val closure1: () -> String) {
FOO("O", { FOO.x }) {
override val y: String = "K"
val closure2 = { y } // Implicit 'FOO'
override val z: String = closure2()
};
abstract val y: String
abstract val z: String
fun test() = closure1() + z
}
fun box() = Test.FOO.test()
@@ -0,0 +1,14 @@
enum class Test(val x: String, val closure1: () -> String) {
FOO("O", run { { FOO.x } }) {
override val y: String = "K"
val closure2 = { y } // Implicit 'FOO'
override val z: String = closure2()
};
abstract val y: String
abstract val z: String
fun test() = closure1() + z
}
fun box() = Test.FOO.test()
@@ -0,0 +1,8 @@
enum class Foo(
val x: String,
val callback: () -> String
) {
FOO("OK", { FOO.x })
}
fun box() = Foo.FOO.callback()
@@ -0,0 +1,17 @@
interface Callback {
fun invoke(): String
}
enum class Foo(
val x: String,
val callback: Callback
) {
FOO(
"OK",
object : Callback {
override fun invoke() = FOO.x
}
)
}
fun box() = Foo.FOO.callback.invoke()
@@ -0,0 +1,10 @@
enum class X {
B {
val value2 = "K"
override val value = "O".let { it + value2 }
};
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,17 @@
enum class X {
B {
val value2 = "K"
val anonObject = object {
val value3 = "O" + value2
override fun toString(): String = value3
}
override val value = anonObject.toString()
};
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,16 @@
enum class X {
B {
val value2 = "K"
val anonObject = object {
override fun toString(): String =
"O" + value2
}
override val value = anonObject.toString()
};
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,21 @@
// LANGUAGE_VERSION: 1.2
enum class X {
B {
val k = "K"
inner class Inner {
fun foo() = "O" + k
}
val inner = Inner()
val bmr = inner::foo
override val value = bmr.invoke()
};
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,18 @@
enum class X {
B {
override val value = "OK"
val bmr = B::value.get()
override fun foo(): String {
return bmr
}
};
abstract val value: String
abstract fun foo(): String
}
fun box() = X.B.foo()
@@ -0,0 +1,15 @@
// LANGUAGE_VERSION: 1.2
enum class X {
B {
override val value = "OK"
override val test = ::value.get()
};
abstract val value: String
abstract val test: String
}
fun box() = X.B.test
@@ -0,0 +1,11 @@
enum class X {
B {
override val value2 = "K"
override val value = "O" + B.value2
};
abstract val value2: String
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,11 @@
enum class X {
B {
override val value2 = "K"
override val value = "O" + X.B.value2
};
abstract val value2: String
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,17 @@
enum class X {
B {
val value2 = "K"
val value3: String
init {
fun foo() = value2
value3 = "O" + foo()
}
override val value = value3
};
abstract val value: String
}
fun box() = X.B.value
@@ -0,0 +1,13 @@
fun <T, R> T.letNoInline(fn: (T) -> R) =
fn(this)
enum class X {
B {
val value2 = "K"
override val value = "O".letNoInline { it + value2 }
};
abstract val value: String
}
fun box() = X.B.value