import kotlin.reflect.* import kotlin.reflect.jvm.* class K { fun foo(s: String): Int = s.length } fun bar(s: String): Int = s.length fun String.baz(): Int = this.length fun check(f: KFunction) { assert(f.javaConstructor == null) { "Fail f constructor" } assert(f.javaMethod != null) { "Fail f method" } val m = f.javaMethod!! assert(m.kotlinFunction != null) { "Fail m function" } val ff = m.kotlinFunction!! assert(f == ff) { "Fail f != ff" } } fun box(): String { check(K::foo) check(::bar) check(String::baz) return "OK" }