Use descriptors for reflection on top level properties
This also allows to obtain a Field object from the package part (see mapping.kt)
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
import kotlin.platform.platformName
|
||||
import kotlin.reflect.jvm.*
|
||||
|
||||
var state: String = "value"
|
||||
[platformName("getter")]
|
||||
get
|
||||
[platformName("setter")]
|
||||
set
|
||||
|
||||
fun box(): String {
|
||||
val p = ::state
|
||||
|
||||
if (p.name != "state") return "Fail name: ${p.name}"
|
||||
if (p.get() != "value") return "Fail get: ${p.get()}"
|
||||
p.set("OK")
|
||||
|
||||
val getterName = p.javaGetter!!.getName()
|
||||
if (getterName != "getter") return "Fail getter name: $getterName"
|
||||
|
||||
val setterName = p.javaSetter!!.getName()
|
||||
if (setterName != "setter") return "Fail setter name: $setterName"
|
||||
|
||||
return p.get()
|
||||
}
|
||||
Reference in New Issue
Block a user