f5f77d43bf
... in presence of typealiases. #KT-61921
94 lines
2.8 KiB
Kotlin
Vendored
94 lines
2.8 KiB
Kotlin
Vendored
// FIR_IDENTICAL
|
|
|
|
import kotlin.reflect.*
|
|
|
|
class Foo(val prop: Any) {
|
|
fun func() {}
|
|
}
|
|
|
|
fun n01() = Foo::prop
|
|
fun n02() = Foo::func
|
|
fun n03() = Foo::class
|
|
fun n04(p: KProperty0<Int>) = p.get()
|
|
fun n05(p: KMutableProperty0<String>) = p.set("")
|
|
fun n07(p: KFunction<String>) = p.name
|
|
fun n08(p: KProperty1<String, Int>) = p.get("")
|
|
fun n09(p: KProperty2<String, String, Int>) = p.get("", "")
|
|
fun n10() = (Foo::func).invoke(Foo(""))
|
|
fun n11() = (Foo::func)(Foo(""))
|
|
|
|
fun y01() = Foo::prop.<!NO_REFLECTION_IN_CLASS_PATH!>getter<!>
|
|
fun y02() = Foo::class.<!NO_REFLECTION_IN_CLASS_PATH!>members<!>
|
|
fun y03() = Foo::class.simpleName
|
|
fun y04() = Foo::class.<!UNRESOLVED_REFERENCE!>properties<!>
|
|
fun y05() = Foo::prop.<!NO_REFLECTION_IN_CLASS_PATH!>getter<!>(Foo(42))
|
|
|
|
fun <T : Any> kclass(k: KClass<*>, kt: KClass<T>) {
|
|
k.simpleName
|
|
k.qualifiedName
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>members<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>constructors<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>nestedClasses<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>objectInstance<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>typeParameters<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>supertypes<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>visibility<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isFinal<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isOpen<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isAbstract<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isSealed<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isData<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isInner<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isCompanion<!>
|
|
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>annotations<!>
|
|
k.isInstance(42)
|
|
|
|
k == kt
|
|
k.hashCode()
|
|
k.toString()
|
|
}
|
|
|
|
typealias TA<T> = KClass<T>
|
|
|
|
fun <T : Any> kclassTa(k: TA<*>, kt: TA<T>) {
|
|
k.simpleName
|
|
k.qualifiedName
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>members<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>constructors<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>nestedClasses<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>objectInstance<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>typeParameters<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>supertypes<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>visibility<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isFinal<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isOpen<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isAbstract<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isSealed<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isData<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isInner<!>
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>isCompanion<!>
|
|
|
|
k.<!NO_REFLECTION_IN_CLASS_PATH!>annotations<!>
|
|
k.isInstance(42)
|
|
|
|
k == kt
|
|
k.hashCode()
|
|
k.toString()
|
|
}
|
|
|
|
fun ktype(t: KType, t2: KType) {
|
|
t.classifier
|
|
t.arguments
|
|
t.isMarkedNullable
|
|
t.annotations
|
|
|
|
t == t2
|
|
t.hashCode()
|
|
t.toString()
|
|
|
|
KTypeProjection.Companion.covariant(t)
|
|
KTypeProjection.STAR
|
|
KTypeProjection(KVariance.IN, t)
|
|
}
|