c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
48 lines
731 B
Kotlin
Vendored
48 lines
731 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
// WITH_STDLIB
|
|
// FILE: JavaBaseClass.java
|
|
|
|
public class JavaBaseClass {
|
|
|
|
private String field = "fail";
|
|
|
|
protected String getFoo() {
|
|
return field;
|
|
}
|
|
|
|
protected void setFoo(String foo) {
|
|
field = foo;
|
|
}
|
|
}
|
|
|
|
// FILE: kotlin.kt
|
|
|
|
package z
|
|
|
|
import JavaBaseClass
|
|
|
|
class A {
|
|
@JvmField var foo = "fail"
|
|
|
|
companion object : JavaBaseClass() {
|
|
@JvmStatic fun test(): String {
|
|
return runSlowly {
|
|
foo = "OK"
|
|
foo
|
|
}
|
|
}
|
|
}
|
|
}
|
|
fun runSlowly(f: () -> String): String {
|
|
return f()
|
|
}
|
|
|
|
fun box(): String {
|
|
val a = A()
|
|
a.foo = "Kotlin"
|
|
if (a.foo != "Kotlin") return "fail"
|
|
|
|
return A.test()
|
|
}
|