e226561150
This fixes an issue with lateinit properties where the metadata from the original field was not copied to the nullable field in LateinitLowering. Also consolidated related tests.
34 lines
841 B
Kotlin
Vendored
34 lines
841 B
Kotlin
Vendored
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// TARGET_BACKEND: JVM
|
|
|
|
// WITH_REFLECT
|
|
|
|
import kotlin.reflect.jvm.*
|
|
import kotlin.test.*
|
|
|
|
var topLevel = "123"
|
|
|
|
val fileFacadeClass = object {}::class.java.enclosingClass
|
|
|
|
fun box(): String {
|
|
val p = ::topLevel
|
|
|
|
assertNotNull(p.javaField, "Fail p field")
|
|
assertEquals(p.javaField!!.getDeclaringClass(), fileFacadeClass)
|
|
|
|
val getter = p.javaGetter!!
|
|
val setter = p.javaSetter!!
|
|
|
|
assertEquals(fileFacadeClass.getMethod("getTopLevel"), getter)
|
|
assertEquals(fileFacadeClass.getMethod("setTopLevel", String::class.java), setter)
|
|
|
|
assertNull(p.getter.javaConstructor)
|
|
assertNull(p.setter.javaConstructor)
|
|
|
|
assertEquals("123", getter.invoke(null), "Fail k getter")
|
|
setter.invoke(null, "456")
|
|
assertEquals("456", getter.invoke(null), "Fail k setter")
|
|
|
|
return "OK"
|
|
}
|