import kotlin.reflect.* import kotlin.reflect.jvm.* class K { class Nested inner class Inner } class Secondary { constructor(x: Int) {} } fun check(f: KFunction) { assert(f.javaMethod == null, "Fail f method") assert(f.javaConstructor != null, "Fail f constructor") val c = f.javaConstructor!! assert(c.kotlinFunction != null, "Fail m function") val ff = c.kotlinFunction!! assert(f == ff, "Fail f != ff") } fun box(): String { check(::K) // Workaround KT-8596 val nested = K::Nested check(nested) check(K::Inner) check(::Secondary) return "OK" }