| // RUN_PIPELINE_TILL: FRONTEND | |
| 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) | |
| } | |
| class Box<T>(val item: T) | |
| fun <T : KClass<*>> foo(t: T, x: CharSequence, box: Box<out KClass<*>>) { | |
| t.<!NO_REFLECTION_IN_CLASS_PATH!>members<!> | |
| if (x is KClass<*>) { | |
| x.<!NO_REFLECTION_IN_CLASS_PATH!>members<!> | |
| } | |
| box.item.<!NO_REFLECTION_IN_CLASS_PATH!>members<!> | |
| } | |
| /* GENERATED_FIR_TAGS: callableReference, capturedType, classDeclaration, classReference, equalityExpression, | |
| functionDeclaration, integerLiteral, nullableType, primaryConstructor, propertyDeclaration, starProjection, | |
| stringLiteral, typeAliasDeclaration, typeAliasDeclarationWithTypeParameter, typeConstraint, typeParameter */ |