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) = p.get() fun n05(p: KMutableProperty0) = p.set("") fun n07(p: KFunction) = p.name fun n08(p: KProperty1) = p.get("") fun n09(p: KProperty2) = p.get("", "") fun n10() = (Foo::func).invoke(Foo("")) fun n11() = (Foo::func)(Foo("")) fun y01() = Foo::prop.getter fun y02() = Foo::class.members fun y03() = Foo::class.simpleName fun y04() = Foo::class.properties fun kclass(k: KClass<*>, kt: KClass) { k.simpleName k.qualifiedName k.members k.constructors k.nestedClasses k.objectInstance k.typeParameters k.supertypes k.visibility k.isFinal k.isOpen k.isAbstract k.isSealed k.isData k.isInner k.isCompanion k.annotations k == kt k.hashCode() k.toString() }