diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt index b8e0aad2656..683b62def1c 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ScriptLowering.kt @@ -494,15 +494,10 @@ private class ScriptToClassTransformer( if (irScript.earlierScripts != null) { val target = expression.symbol.owner val receiver: IrValueParameter? = target.dispatchReceiverParameter - if (target.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR && receiver?.name == Name.special("")) { + if (receiver?.name == Name.special("")) { val newReceiver = getAccessCallForEarlierScript(expression, receiver.type) if (newReceiver != null) { - val builder = context.createIrBuilder(expression.symbol) - val newCall = builder.irCall(expression.symbol, target.returnType, origin = expression.origin).also { - it.copyTypeAndValueArgumentsFrom(expression) - it.dispatchReceiver = newReceiver - } - return super.visitCall(newCall) + expression.dispatchReceiver = newReceiver } } } diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt index 61ee31fa645..d3129b45550 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt @@ -146,6 +146,21 @@ class ReplTest : TestCase() { ) } + @Test + // TODO: make it covering more cases + fun testIrReceiverOvewrite() { + checkEvaluateInRepl( + sequenceOf( + "fun f(a: String) = a", + "f(\"x\")" + ), + sequenceOf( + null, + "x" + ) + ) + } + @Test fun testNoEvaluationError() { checkEvaluateInReplDiags(