Support mapping between Kotlin functions and JVM methods/constructors

This commit is contained in:
Alexander Udalov
2015-07-15 23:33:37 +03:00
parent 93656c93c1
commit 936bede8b1
14 changed files with 323 additions and 38 deletions
@@ -0,0 +1,35 @@
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"
}