JS: prohibit using more than one argument in indexed access with dynamic receiver (see KT-6580)

This commit is contained in:
Alexey Andreev
2016-12-08 17:09:53 +03:00
parent 627dd66ed5
commit fc6eaa015f
10 changed files with 60 additions and 5 deletions
@@ -14,9 +14,7 @@ public final fun contains(/*0*/ p0: dynamic): dynamic
public final fun contains(/*0*/ p0: dynamic): dynamic
public final fun contains(/*0*/ p0: dynamic): dynamic
public final fun get(/*0*/ p0: dynamic): dynamic
public final fun get(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic, /*2*/ p2: dynamic): dynamic
public final fun get(/*0*/ p0: dynamic): dynamic
public final fun inc(): dynamic
public final fun inc(): dynamic
@@ -27,10 +27,8 @@ fun test(d: dynamic) {
1 <!DEBUG_INFO_DYNAMIC!>!in<!> d
<!DEBUG_INFO_DYNAMIC!>d[1]<!>
<!DEBUG_INFO_DYNAMIC!>d[1, 2]<!>
<!DEBUG_INFO_DYNAMIC!>d[1]<!> = 2
<!DEBUG_INFO_DYNAMIC!>d[1, 2]<!> = 3
<!DEBUG_INFO_DYNAMIC!>d[1]<!><!DEBUG_INFO_DYNAMIC!>++<!>
<!DEBUG_INFO_DYNAMIC!>++<!><!DEBUG_INFO_DYNAMIC!>d[1]<!>
@@ -0,0 +1,4 @@
public final fun get(/*0*/ p0: dynamic): dynamic
public final fun get(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic, /*2*/ p2: dynamic): dynamic
@@ -0,0 +1,8 @@
fun foo() {
val a: dynamic = Any()
println(a[0])
println(<!WRONG_OPERATION_WITH_DYNAMIC!>a[0, 1]<!>)
a[0] = 23
<!WRONG_OPERATION_WITH_DYNAMIC!>a[0, 1]<!> = 42
}
@@ -0,0 +1,3 @@
package
public fun foo(): kotlin.Unit