Support Kotlin annotation constructors in reflection
#KT-13106 In Progress
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
annotation class A1
|
||||
|
||||
annotation class A2(val k: KClass<*>, val s: A1)
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(1, A1::class.constructors.size)
|
||||
assertEquals(A1::class.primaryConstructor, A1::class.constructors.single())
|
||||
|
||||
val cs = A2::class.constructors
|
||||
assertEquals(1, cs.size)
|
||||
assertEquals(A2::class.primaryConstructor, cs.single())
|
||||
val params = cs.single().parameters
|
||||
assertEquals(listOf("k", "s"), params.map { it.name })
|
||||
|
||||
return "OK"
|
||||
}
|
||||
-3
@@ -1,10 +1,8 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
interface Interface
|
||||
annotation class Anno(val x: Int)
|
||||
object Obj
|
||||
|
||||
class C {
|
||||
@@ -13,7 +11,6 @@ class C {
|
||||
|
||||
fun box(): String {
|
||||
assertTrue(Interface::class.constructors.isEmpty())
|
||||
assertTrue(Anno::class.constructors.isEmpty())
|
||||
assertTrue(Obj::class.constructors.isEmpty())
|
||||
assertTrue(C.Companion::class.constructors.isEmpty())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user