| // 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() |
| } |