diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt index 43b0e0f51a6..fa52a0b2021 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt @@ -44,7 +44,12 @@ class DynamicMemberLValue( context.irBuiltIns.unitType, IrDynamicOperator.EQ ).apply { - left = dynamicReceiver + left = IrDynamicMemberExpressionImpl( + startOffset, endOffset, + type, + memberName, + dynamicReceiver + ) right = irExpression } } diff --git a/compiler/testData/codegen/box/arrays/forEachBooleanArray.kt b/compiler/testData/codegen/box/arrays/forEachBooleanArray.kt index 481fdae1c33..f0238410cc5 100644 --- a/compiler/testData/codegen/box/arrays/forEachBooleanArray.kt +++ b/compiler/testData/codegen/box/arrays/forEachBooleanArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { for (x in BooleanArray(5)) { if (x != false) return "Fail $x" diff --git a/compiler/testData/codegen/box/arrays/forEachCharArray.kt b/compiler/testData/codegen/box/arrays/forEachCharArray.kt index 9056fc256a1..4b797671175 100644 --- a/compiler/testData/codegen/box/arrays/forEachCharArray.kt +++ b/compiler/testData/codegen/box/arrays/forEachCharArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { for (x in CharArray(5)) { if (x != 0.toChar()) return "Fail $x" diff --git a/compiler/testData/codegen/box/arrays/forEachLongArray.kt b/compiler/testData/codegen/box/arrays/forEachLongArray.kt index a31bab7db15..6ed0259f765 100644 --- a/compiler/testData/codegen/box/arrays/forEachLongArray.kt +++ b/compiler/testData/codegen/box/arrays/forEachLongArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { for (x in LongArray(5)) { if (x != 0.toLong()) return "Fail $x" diff --git a/compiler/testData/codegen/box/arrays/indicesChar.kt b/compiler/testData/codegen/box/arrays/indicesChar.kt index 8b5251961bb..89959e1f0c9 100644 --- a/compiler/testData/codegen/box/arrays/indicesChar.kt +++ b/compiler/testData/codegen/box/arrays/indicesChar.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/arrays/iteratorLongArray.kt b/compiler/testData/codegen/box/arrays/iteratorLongArray.kt index adbe9f255fb..b1033002764 100644 --- a/compiler/testData/codegen/box/arrays/iteratorLongArray.kt +++ b/compiler/testData/codegen/box/arrays/iteratorLongArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { val a = LongArray(5) val x = a.iterator() diff --git a/compiler/testData/codegen/box/arrays/iteratorLongArrayNextLong.kt b/compiler/testData/codegen/box/arrays/iteratorLongArrayNextLong.kt index 83479cf485d..cc9cec5d570 100644 --- a/compiler/testData/codegen/box/arrays/iteratorLongArrayNextLong.kt +++ b/compiler/testData/codegen/box/arrays/iteratorLongArrayNextLong.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { val a = LongArray(5) val x = a.iterator() diff --git a/compiler/testData/codegen/box/arrays/multiDecl/kt15575.kt b/compiler/testData/codegen/box/arrays/multiDecl/kt15575.kt index 4c42fec0764..16a7300358b 100644 --- a/compiler/testData/codegen/box/arrays/multiDecl/kt15575.kt +++ b/compiler/testData/codegen/box/arrays/multiDecl/kt15575.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { val transform = transform(Array(1) { BooleanArray(1) }) if (!transform[0][0]) return "OK" diff --git a/compiler/testData/codegen/box/arrays/primitiveArrays.kt b/compiler/testData/codegen/box/arrays/primitiveArrays.kt index 035beb24ee0..806b11ee1d0 100644 --- a/compiler/testData/codegen/box/arrays/primitiveArrays.kt +++ b/compiler/testData/codegen/box/arrays/primitiveArrays.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/boxingOptimization/fold.kt b/compiler/testData/codegen/box/boxingOptimization/fold.kt index 3f579619847..370b77d7a3b 100644 --- a/compiler/testData/codegen/box/boxingOptimization/fold.kt +++ b/compiler/testData/codegen/box/boxingOptimization/fold.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt index 29c7a3b13d9..43de3a090f0 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JVM_IR, JS_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(vararg l: Long, s: String = "OK"): String = if (l.size == 0) s else "Fail" diff --git a/compiler/testData/codegen/box/increment/arrayElement.kt b/compiler/testData/codegen/box/increment/arrayElement.kt index d03372e8abb..e74d4d23515 100644 --- a/compiler/testData/codegen/box/increment/arrayElement.kt +++ b/compiler/testData/codegen/box/increment/arrayElement.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun box(): String { val aByte: Array = arrayOf(1) val bByte: ByteArray = byteArrayOf(1) diff --git a/compiler/testData/codegen/box/inlineClasses/secondaryConstructorWithVararg.kt b/compiler/testData/codegen/box/inlineClasses/secondaryConstructorWithVararg.kt index e0a94b6356f..e898e64309c 100644 --- a/compiler/testData/codegen/box/inlineClasses/secondaryConstructorWithVararg.kt +++ b/compiler/testData/codegen/box/inlineClasses/secondaryConstructorWithVararg.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses // WITH_RUNTIME -// IGNORE_BACKEND: JVM_IR, JS_IR +// IGNORE_BACKEND: JVM_IR inline class Z(val x: Int) { constructor(vararg ys: Long) : this(ys.size) diff --git a/compiler/testData/codegen/box/intrinsics/kt10131a.kt b/compiler/testData/codegen/box/intrinsics/kt10131a.kt index 1f3fed9f9d6..92d2ea4ba02 100644 --- a/compiler/testData/codegen/box/intrinsics/kt10131a.kt +++ b/compiler/testData/codegen/box/intrinsics/kt10131a.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/vararg/doNotCopyImmediatelyCreatedArrays.kt b/compiler/testData/codegen/box/vararg/doNotCopyImmediatelyCreatedArrays.kt index e15927dda7a..6cc4d47dc23 100644 --- a/compiler/testData/codegen/box/vararg/doNotCopyImmediatelyCreatedArrays.kt +++ b/compiler/testData/codegen/box/vararg/doNotCopyImmediatelyCreatedArrays.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun booleanVararg(vararg xs: Boolean) { if (xs.size != 1 && xs[0] != true) throw AssertionError() } diff --git a/compiler/testData/codegen/box/vararg/kt6192.kt b/compiler/testData/codegen/box/vararg/kt6192.kt index 148e34a6abc..d442cda5937 100644 --- a/compiler/testData/codegen/box/vararg/kt6192.kt +++ b/compiler/testData/codegen/box/vararg/kt6192.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR fun barB(vararg args: Byte) = args fun barC(vararg args: Char) = args fun barD(vararg args: Double) = args diff --git a/compiler/testData/codegen/boxInline/nonLocalReturns/tryFinally/kt26384_2.kt b/compiler/testData/codegen/boxInline/nonLocalReturns/tryFinally/kt26384_2.kt index 079a47863d9..586a0bb5ba2 100644 --- a/compiler/testData/codegen/boxInline/nonLocalReturns/tryFinally/kt26384_2.kt +++ b/compiler/testData/codegen/boxInline/nonLocalReturns/tryFinally/kt26384_2.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JVM_IR, JS_IR +// IGNORE_BACKEND: JVM_IR // NO_CHECK_LAMBDA_INLINING // FILE: 1.kt diff --git a/compiler/testData/ir/irJsText/dynamic/dynamicMemberAssignment.txt b/compiler/testData/ir/irJsText/dynamic/dynamicMemberAssignment.txt index d61ac48203a..db1ed0c3e38 100644 --- a/compiler/testData/ir/irJsText/dynamic/dynamicMemberAssignment.txt +++ b/compiler/testData/ir/irJsText/dynamic/dynamicMemberAssignment.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/dynamicMemberAssignment.kt VALUE_PARAMETER name:d index:0 type:dynamic flags: BLOCK_BODY DYN_OP operator=EQ type=kotlin.Unit - receiver: GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null + receiver: DYN_MEMBER memberName='m' type=kotlin.Unit + GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null 0: CONST Int type=kotlin.Int value=1 FUN name:testSafeMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags: VALUE_PARAMETER name:d index:0 type:dynamic flags: @@ -22,5 +23,6 @@ FILE fqName: fileName:/dynamicMemberAssignment.kt BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: DYN_OP operator=EQ type=kotlin.Unit - receiver: GET_VAR 'tmp0_safe_receiver: dynamic' type=dynamic origin=null + receiver: DYN_MEMBER memberName='m' type=kotlin.Unit + GET_VAR 'tmp0_safe_receiver: dynamic' type=dynamic origin=null 0: CONST Int type=kotlin.Int value=1 diff --git a/js/js.translator/testData/box/dynamic/propertyAccess.kt b/js/js.translator/testData/box/dynamic/propertyAccess.kt index 11a21f426f1..dda3f4d4447 100644 --- a/js/js.translator/testData/box/dynamic/propertyAccess.kt +++ b/js/js.translator/testData/box/dynamic/propertyAccess.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1290 package foo diff --git a/js/js.translator/testData/box/dynamic/setByBrackets.kt b/js/js.translator/testData/box/dynamic/setByBrackets.kt index f7ec878895f..ca31b3283d2 100644 --- a/js/js.translator/testData/box/dynamic/setByBrackets.kt +++ b/js/js.translator/testData/box/dynamic/setByBrackets.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1231 package foo diff --git a/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt b/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt index 09cb7fc0a10..40e19c1632c 100644 --- a/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt +++ b/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1294 package foo diff --git a/js/js.translator/testData/box/number/longArray.kt b/js/js.translator/testData/box/number/longArray.kt index c445e2da715..e2ff9a6b17f 100644 --- a/js/js.translator/testData/box/number/longArray.kt +++ b/js/js.translator/testData/box/number/longArray.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1287 package foo diff --git a/js/js.translator/testData/box/propertyAccess/defaultAccessorsWithJsName.kt b/js/js.translator/testData/box/propertyAccess/defaultAccessorsWithJsName.kt index 86a661d74fd..00799288a71 100644 --- a/js/js.translator/testData/box/propertyAccess/defaultAccessorsWithJsName.kt +++ b/js/js.translator/testData/box/propertyAccess/defaultAccessorsWithJsName.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1288 package foo diff --git a/js/js.translator/testData/box/reflection/kClass.kt b/js/js.translator/testData/box/reflection/kClass.kt index 956784fec46..caf192ba686 100644 --- a/js/js.translator/testData/box/reflection/kClass.kt +++ b/js/js.translator/testData/box/reflection/kClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1321 package foo diff --git a/js/js.translator/testData/box/reflection/kClassOnReifiedType.kt b/js/js.translator/testData/box/reflection/kClassOnReifiedType.kt index 1f5585d26cf..ef65b2f1464 100644 --- a/js/js.translator/testData/box/reflection/kClassOnReifiedType.kt +++ b/js/js.translator/testData/box/reflection/kClassOnReifiedType.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1318 package foo diff --git a/js/js.translator/testData/box/reflection/kClassOnReifiedTypeInLambda.kt b/js/js.translator/testData/box/reflection/kClassOnReifiedTypeInLambda.kt index c92ca4be009..d70f05583a7 100644 --- a/js/js.translator/testData/box/reflection/kClassOnReifiedTypeInLambda.kt +++ b/js/js.translator/testData/box/reflection/kClassOnReifiedTypeInLambda.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1320 package foo diff --git a/js/js.translator/testData/box/standardClasses/arrayConstructorsWithLambda.kt b/js/js.translator/testData/box/standardClasses/arrayConstructorsWithLambda.kt index 7d614484956..c762ae011a2 100644 --- a/js/js.translator/testData/box/standardClasses/arrayConstructorsWithLambda.kt +++ b/js/js.translator/testData/box/standardClasses/arrayConstructorsWithLambda.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1283 package foo