Files
kotlin-fork/compiler/testData/codegen/box/javaFieldAndKotlinProperty/javaProtectedFieldAndKotlinInvisiblePropertyReference.kt
T
Alexander Udalov d73d3c46e2 K2 JVM IR: fix access to Java field shadowed by Kotlin property
#KT-56386 Fixed

Co-authored-by: Mikhail Glukhikh <Mikhail.Glukhikh@jetbrains.com>
2023-02-23 12:54:00 +01:00

38 lines
692 B
Kotlin
Vendored

// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
// Field VS property: case "reference", protected field in the same package, invisible property
// FILE: BaseJava.java
package base;
public class BaseJava {
protected String a = "";
}
// FILE: Derived.kt
package derived
import base.BaseJava
open class Intermediate : BaseJava() {
private val a = "FAIL"
}
// TODO: remove suppress after dropping the relevant diagnostic
@Suppress("JAVA_SHADOWED_PROTECTED_FIELD_REFERENCE")
class Derived : Intermediate() {
fun foo() = this::a.get()
fun bar() {
Derived::a.set(this, "OK")
}
}
fun box(): String {
val d = Derived()
d.bar()
return d.foo()
}