Support KClass.constructors in reflection
This commit is contained in:
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
interface Interface
|
||||
annotation class Anno(val x: Int)
|
||||
object Obj
|
||||
|
||||
class C {
|
||||
companion object
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertTrue(Interface::class.constructors.isEmpty())
|
||||
assertTrue(Anno::class.constructors.isEmpty())
|
||||
assertTrue(Obj::class.constructors.isEmpty())
|
||||
assertTrue(C.Companion::class.constructors.isEmpty())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import java.util.Collections
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
open class A private constructor(x: Int) {
|
||||
public constructor(s: String): this(s.length())
|
||||
constructor(): this("")
|
||||
}
|
||||
|
||||
class B : A("")
|
||||
|
||||
class C {
|
||||
class Nested
|
||||
inner class Inner
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(3, A::class.constructors.size())
|
||||
assertEquals(1, B::class.constructors.size())
|
||||
|
||||
assertTrue(Collections.disjoint(A::class.members, A::class.constructors))
|
||||
assertTrue(Collections.disjoint(B::class.members, B::class.constructors))
|
||||
|
||||
assertEquals(1, C.Nested::class.constructors.size())
|
||||
assertEquals(1, C.Inner::class.constructors.size())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user