Support mapping between Kotlin functions and JVM methods/constructors
This commit is contained in:
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user