mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-17 08:31:29 +00:00
35 lines
851 B
Kotlin
Vendored
35 lines
851 B
Kotlin
Vendored
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"
|
|
}
|