Fix KProperty.javaField for fake overrides
#KT-8131 Fixed
This commit is contained in:
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// KT-8131 Cannot find backing field in ancestor class via reflection
|
||||
|
||||
import kotlin.reflect.*
|
||||
import kotlin.reflect.jvm.*
|
||||
|
||||
open class TestBase {
|
||||
var id = 0L
|
||||
}
|
||||
|
||||
class TestChild : TestBase()
|
||||
|
||||
fun box(): String {
|
||||
val property = TestChild::class.memberProperties.first { it.name == "id" } as KMutableProperty<*>
|
||||
if (property.javaField == null)
|
||||
return "Fail: no field"
|
||||
if (property.javaGetter == null)
|
||||
return "Fail: no getter"
|
||||
if (property.javaSetter == null)
|
||||
return "Fail: no setter"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import kotlin.reflect.*
|
||||
import kotlin.reflect.jvm.*
|
||||
|
||||
open class TestBase {
|
||||
fun id() = 0L
|
||||
}
|
||||
|
||||
class TestChild : TestBase()
|
||||
|
||||
fun box(): String {
|
||||
if (TestChild::class.memberFunctions.first { it.name == "id" }.javaMethod == null)
|
||||
return "No method for TestChild.id()"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user