Minor, add more tests on signature-polymorphic calls

Add a test on null (since null is a special case in the
PolymorphicSignature spec), and a test on a call without assignment to a
variable
This commit is contained in:
Alexander Udalov
2019-12-13 20:01:49 +03:00
parent 64d40b4743
commit 7eda60d57e
6 changed files with 56 additions and 0 deletions
@@ -43,5 +43,8 @@ fun box(): String {
val result3 = (o.p).handle.invoke(C(), "Hello", 0.01, Derived()) as String
if (result1 != result3) return "Fail 3: $result1 != $result3"
// Check cast expression without assignment to a variable
mh.invoke(C(), "", 0.01, Derived()) as String
return "OK"
}
@@ -0,0 +1,28 @@
// !LANGUAGE: +PolymorphicSignature
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FULL_JDK
// SKIP_JDK6
// WITH_RUNTIME
import java.lang.invoke.MethodHandles
import java.lang.invoke.MethodType
var result: String? = "Fail"
class C {
fun foo(s: Nothing?) {
result = s
}
}
fun box(): String {
val mh = MethodHandles.lookup().findVirtual(
C::class.java, "foo",
MethodType.methodType(Void.TYPE, Void::class.java)
)
mh.invokeExact(C(), null)
return result ?: "OK"
}