Fix KFunction.javaMethod for property accessors

This commit is contained in:
Alexander Udalov
2015-07-23 23:26:49 +03:00
parent 9c4ba711b8
commit 262099c899
4 changed files with 52 additions and 2 deletions
@@ -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"
}