Files
kotlin-fork/compiler/testData/codegen/box/fieldRename/javaFieldAndCompanionProperty.kt
T
2023-01-30 14:55:41 +00:00

38 lines
786 B
Kotlin
Vendored

// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND_FIR: JVM_IR
// FIR_STATUS: accesses companion property backing field statically and fails (does not work in K1/JVM too)
// FILE: Base.java
public class Base {
protected String TAG = "OK";
public String foo() {
return TAG;
}
}
// FILE: Sub.kt
class Sub : Base() {
companion object {
val TAG = "FAIL"
}
fun log() = TAG
fun logReference() = this::TAG.get()
fun logAssignment(): String {
TAG = "12"
if (foo() != "12") return "Error writing: ${foo()}"
return "OK"
}
}
fun box(): String {
if (Sub().log() != "OK") return Sub().log()
if (Sub().logReference() != "OK") return Sub().logReference()
return Sub().logAssignment()
}