Fix KProperty.javaField for fake overrides

#KT-8131 Fixed
This commit is contained in:
Alexander Udalov
2016-02-20 12:45:29 +03:00
parent 534a3a11d6
commit 1c0bbcd72b
8 changed files with 106 additions and 43 deletions
@@ -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"
}
@@ -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"
}