Forbid spread operator in signature-polymorphic calls
#KT-35226 Fixed
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +PolymorphicSignature +ProhibitSpreadOnSignaturePolymorphicCall
|
||||
// FULL_JDK
|
||||
|
||||
import java.lang.invoke.MethodHandle
|
||||
|
||||
fun test(mh: MethodHandle) {
|
||||
mh.invokeExact("1", "2")
|
||||
mh.invokeExact(*emptyArray(), "X")
|
||||
mh.invokeExact(*arrayOf("A", "B"), "C", *arrayOf("D", "E"))
|
||||
mh.invoke(*arrayOf("A"))
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +PolymorphicSignature +ProhibitSpreadOnSignaturePolymorphicCall
|
||||
// FULL_JDK
|
||||
|
||||
import java.lang.invoke.MethodHandle
|
||||
|
||||
fun test(mh: MethodHandle) {
|
||||
mh.invokeExact("1", "2")
|
||||
mh.invokeExact(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL_ERROR!>*<!>emptyArray(), "X")
|
||||
mh.invokeExact(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL_ERROR!>*<!>arrayOf("A", "B"), "C", <!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL_ERROR!>*<!>arrayOf("D", "E"))
|
||||
mh.invoke(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL_ERROR!>*<!>arrayOf("A"))
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ mh: java.lang.invoke.MethodHandle): kotlin.Unit
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +PolymorphicSignature -ProhibitSpreadOnSignaturePolymorphicCall
|
||||
// FULL_JDK
|
||||
|
||||
import java.lang.invoke.MethodHandle
|
||||
|
||||
fun test(mh: MethodHandle) {
|
||||
mh.invokeExact("1", "2")
|
||||
mh.<!INAPPLICABLE_CANDIDATE!>invokeExact<!>(*emptyArray(), "X")
|
||||
mh.<!INAPPLICABLE_CANDIDATE!>invokeExact<!>(*arrayOf("A", "B"), "C", *arrayOf("D", "E"))
|
||||
mh.invoke(*arrayOf("A"))
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +PolymorphicSignature -ProhibitSpreadOnSignaturePolymorphicCall
|
||||
// FULL_JDK
|
||||
|
||||
import java.lang.invoke.MethodHandle
|
||||
|
||||
fun test(mh: MethodHandle) {
|
||||
mh.invokeExact("1", "2")
|
||||
mh.invokeExact(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL!>*<!>emptyArray(), "X")
|
||||
mh.invokeExact(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL!>*<!>arrayOf("A", "B"), "C", <!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL!>*<!>arrayOf("D", "E"))
|
||||
mh.invoke(<!SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL!>*<!>arrayOf("A"))
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ mh: java.lang.invoke.MethodHandle): kotlin.Unit
|
||||
Reference in New Issue
Block a user