[FIR] Fix arguments mapping for indexed set operator

Now processPositionArgument changes STATE as well as processNamedArgument

^KT-59386
This commit is contained in:
Ivan Kochurkin
2023-07-12 22:50:26 +02:00
committed by Space Team
parent 8f5294a508
commit 43c66ee0e5
4 changed files with 38 additions and 32 deletions
@@ -20,16 +20,23 @@ object Z {
}
}
object W {
operator fun set(vararg va: Int, value: Int) {
}
}
fun test() {
A[0] = ""
A[0] = <!ARGUMENT_TYPE_MISMATCH!>""<!>
A[0] = 2.72
B[0] = ""
B[0] = 2.72
B[0] = <!ARGUMENT_TYPE_MISMATCH!>""<!>
B[0] = <!ARGUMENT_TYPE_MISMATCH!>2.72<!>
B[0] = true
D[0] = ""
D[0] = <!ARGUMENT_TYPE_MISMATCH!>""<!>
D[0] = 2.72
Z[<!TOO_MANY_ARGUMENTS!>0<!>] = <!TOO_MANY_ARGUMENTS!>""<!>
W[0] = 1
}
@@ -20,6 +20,11 @@ object Z {
}
}
object W {
operator fun set(vararg va: Int, value: Int) {
}
}
fun test() {
A[0] = <!TYPE_MISMATCH!>""<!>
A[0] = 2.72
@@ -32,4 +37,6 @@ fun test() {
D[0] = 2.72
Z[<!TOO_MANY_ARGUMENTS!>0<!>] = <!TOO_MANY_ARGUMENTS!>""<!>
W[0] = 1
}
@@ -26,6 +26,14 @@ public object D {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object W {
private constructor W()
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 set(/*0*/ vararg va: kotlin.Int /*kotlin.IntArray*/, /*1*/ value: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object Z {
private constructor Z()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -33,3 +41,4 @@ public object Z {
public final operator fun set(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}