Reflection: add API for declaration modifiers

#KT-10447 Fixed
This commit is contained in:
Alexander Udalov
2016-07-12 19:06:00 +03:00
parent ada81923dc
commit 7e317f7a7c
24 changed files with 681 additions and 1 deletions
@@ -0,0 +1,36 @@
// WITH_REFLECT
import kotlin.test.assertTrue
import kotlin.test.assertFalse
inline fun Unit.foo(
crossinline crossinline: () -> Unit,
noinline coroutine x: Unit.() -> Continuation<Unit>,
vararg vararg: Unit
) {}
fun box(): String {
val p = Unit::foo.parameters
assertFalse(p[0].isNoinline)
assertFalse(p[0].isCrossinline)
assertFalse(p[0].isVararg)
assertFalse(p[0].isCoroutine)
assertFalse(p[1].isNoinline)
assertTrue(p[1].isCrossinline)
assertFalse(p[1].isVararg)
assertFalse(p[1].isCoroutine)
assertTrue(p[2].isNoinline)
assertFalse(p[2].isCrossinline)
assertFalse(p[2].isVararg)
assertTrue(p[2].isCoroutine)
assertFalse(p[3].isNoinline)
assertFalse(p[3].isCrossinline)
assertTrue(p[3].isVararg)
assertFalse(p[3].isCoroutine)
return "OK"
}