Files
kotlin-fork/compiler/testData/codegen/box/reflection/mapping/javaMethods.kt
T
Alexander Udalov 401f0ac583 Use TARGET_BACKEND instead of DONT_TARGET_EXACT_BACKEND in box against Java tests
"// TARGET_BACKEND: JVM" more clearly says that the test is
JVM-specific, rather than DONT_TARGET_EXACT_BACKEND which excludes all
other backends.
2021-02-11 13:50:08 +01:00

37 lines
825 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_REFLECT
// MODULE: lib
// FILE: J.java
public class J {
public String f(String s) {
return s;
}
public static String g(String s) {
return s;
}
}
// MODULE: main(lib)
// FILE: 1.kt
import kotlin.reflect.*
import kotlin.reflect.jvm.*
fun box(): String {
val f = J::f
val fm = f.javaMethod ?: return "Fail: no Method for f"
if (fm.invoke(J(), "abc") != "abc") return "Fail fm"
val ff = fm.kotlinFunction ?: return "Fail: no KFunction for fm"
if (f != ff) return "Fail f != ff"
val g = J::g
val gm = g.javaMethod ?: return "Fail: no Method for g"
if (gm.invoke(null, "ghi") != "ghi") return "Fail gm"
val gg = gm.kotlinFunction ?: return "Fail: no KFunction for gm"
if (g != gg) return "Fail g != gg"
return "OK"
}