Fix KFunction.javaMethod for property accessors
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
import kotlin.reflect.jvm.*
|
||||
import kotlin.test.*
|
||||
|
||||
var foo = "foo"
|
||||
|
||||
class A {
|
||||
var bar = "bar"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val fooGetter = ::foo.getter.javaMethod ?: return "Fail fooGetter"
|
||||
assertEquals("foo", fooGetter.invoke(null))
|
||||
|
||||
val fooSetter = ::foo.setter.javaMethod ?: return "Fail fooSetter"
|
||||
fooSetter.invoke(null, "foof")
|
||||
assertEquals("foof", foo)
|
||||
|
||||
assertNull(::foo.getter.javaConstructor)
|
||||
assertNull(::foo.setter.javaConstructor)
|
||||
|
||||
|
||||
val a = A()
|
||||
val barGetter = A::bar.getter.javaMethod ?: return "Fail barGetter"
|
||||
assertEquals("bar", barGetter.invoke(a))
|
||||
|
||||
val barSetter = A::bar.setter.javaMethod ?: return "Fail barSetter"
|
||||
barSetter.invoke(a, "barb")
|
||||
assertEquals("barb", a.bar)
|
||||
|
||||
assertNull(A::bar.getter.javaConstructor)
|
||||
assertNull(A::bar.setter.javaConstructor)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user