Support introspection of parameter names and indices in reflection

This commit is contained in:
Alexander Udalov
2015-07-07 21:02:53 +03:00
parent 87c70aa2ae
commit 5962b79126
15 changed files with 228 additions and 22 deletions
@@ -0,0 +1,24 @@
import kotlin.reflect.*
import kotlin.test.assertEquals
var default: Int = 0
var defaultAnnotated: Int = 0
public set
var custom: Int = 0
set(myName: Int) {}
fun checkPropertySetterParam(property: KMutableProperty<*>, name: String?) {
val parameter = property.setter.parameters.single()
assertEquals(0, parameter.index)
assertEquals(name, parameter.name)
}
fun box(): String {
checkPropertySetterParam(::default, null)
checkPropertySetterParam(::defaultAnnotated, null)
checkPropertySetterParam(::custom, "myName")
return "OK"
}