JS: prohibit spread operator and destructuring declaration in dynamic values. See KT-15283
This commit is contained in:
-6
@@ -28,12 +28,6 @@ public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun foo(): dynamic
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun component3(): dynamic
|
||||
public final fun foo(): dynamic
|
||||
public final fun foo(): dynamic
|
||||
public final fun foo(): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun dec(): dynamic
|
||||
|
||||
@@ -55,11 +55,6 @@ fun test(d: dynamic) {
|
||||
i.<!DEBUG_INFO_DYNAMIC!>foo<!>()
|
||||
}
|
||||
|
||||
val (<!DEBUG_INFO_DYNAMIC!>a<!>, <!DEBUG_INFO_DYNAMIC!>b<!>, <!DEBUG_INFO_DYNAMIC!>c<!>) = d
|
||||
a.<!DEBUG_INFO_DYNAMIC!>foo<!>()
|
||||
b.<!DEBUG_INFO_DYNAMIC!>foo<!>()
|
||||
c.<!DEBUG_INFO_DYNAMIC!>foo<!>()
|
||||
|
||||
var dVar = d
|
||||
dVar<!DEBUG_INFO_DYNAMIC!>++<!>
|
||||
<!DEBUG_INFO_DYNAMIC!>++<!>dVar
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
fun foo() {
|
||||
for (<!WRONG_OPERATION_WITH_DYNAMIC!>(x, y)<!> in A()) {
|
||||
println(x + y)
|
||||
}
|
||||
|
||||
bar { <!WRONG_OPERATION_WITH_DYNAMIC!>(x, y)<!> ->
|
||||
println(x + y)
|
||||
}
|
||||
|
||||
val x: dynamic = Any()
|
||||
|
||||
<!WRONG_OPERATION_WITH_DYNAMIC!>val (y, z) = x<!>
|
||||
println(y + z)
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun iterator(): Iterator<dynamic> = TODO("")
|
||||
}
|
||||
|
||||
fun bar(f: (dynamic) -> Unit): Unit = TODO("")
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ f: (dynamic) -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final operator fun iterator(): kotlin.collections.Iterator<dynamic>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+19
-11
@@ -1,14 +1,22 @@
|
||||
fun test(d: dynamic) {
|
||||
val a = arrayOf(1, 2, 3)
|
||||
|
||||
d.foo(*d)
|
||||
d.foo(*a)
|
||||
d.foo(1, "2", *a)
|
||||
d.foo(1, *a) { }
|
||||
d.foo(*a) { "" }
|
||||
d.foo(*a, *a)
|
||||
d.foo(*a, *a) { "" }
|
||||
d.foo(*a, 1, { "" }, *a)
|
||||
d.foo(*a, 1)
|
||||
d.foo(*a, *a, { "" })
|
||||
}
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>d)
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a)
|
||||
d.foo(1, "2", <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a)
|
||||
d.foo(1, <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a) { }
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a) { "" }
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a)
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a) { "" }
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, 1, { "" }, <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a)
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, 1)
|
||||
d.foo(<!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, <!SPREAD_OPERATOR_IN_DYNAMIC_CALL!>*<!>a, { "" })
|
||||
|
||||
bar(d)
|
||||
bar(d, d)
|
||||
bar(<!WRONG_OPERATION_WITH_DYNAMIC!>*d<!>)
|
||||
bar(<!WRONG_OPERATION_WITH_DYNAMIC!>*d<!>, <!WRONG_OPERATION_WITH_DYNAMIC!>*d<!>)
|
||||
bar(<!WRONG_OPERATION_WITH_DYNAMIC!>*d<!>, 23, <!WRONG_OPERATION_WITH_DYNAMIC!>*d<!>)
|
||||
}
|
||||
|
||||
fun bar(vararg x: Int): Unit = TODO("$x")
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
|
||||
public fun test(/*0*/ d: dynamic): kotlin.Unit
|
||||
|
||||
Reference in New Issue
Block a user