Files
kotlin-fork/compiler/testData/codegen/box/fir/callableReferenceToJavaField.kt
T
Alexander Udalov 21d56d04d6 Tests: reclassify some failures in fake override rebuilder tests
See issues for more information: KT-61751, KT-61804, KT-61805, KT-61370.
2023-09-13 15:01:52 +02:00

43 lines
765 B
Kotlin
Vendored

// TARGET_BACKEND: JVM_IR
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: KT-61386
// DUMP_IR
// FULL_JDK
// WITH_REFLECT
// FILE: bar/Base.java
package bar;
import foo.A;
public abstract class Base {
protected A a = new A("fail");
protected void foo() {}
}
// FILE: main.kt
package foo
import kotlin.reflect.jvm.javaField
import bar.Base
class A(val s: String)
class Derived : Base() {
override fun foo() {
// ir: resolved to fake-override field Derived.a in K1,
// but to base field Base.a in K2
// However, box() works correctly in both cases
(Derived::a).javaField!![this] = A("OK")
}
fun box(): String {
foo()
return a.s
}
}
fun box(): String {
return Derived().box()
}