diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt index daaa6ab59d9..98afa56a30d 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt @@ -266,6 +266,33 @@ class ScriptingHostTest : TestCase() { Assert.assertEquals(greeting, output) } + fun testScriptWithImplicitReceiversWithSameShortName() { + val result = listOf("42") + val script = "println(v1 + v2)" + val definition = createJvmScriptDefinitionFromTemplate( + compilation = { + updateClasspath(classpathFromClass()) + implicitReceivers( + kotlin.script.experimental.jvmhost.test.forScript.p1.TestClass::class, + kotlin.script.experimental.jvmhost.test.forScript.p2.TestClass::class + ) + }, + evaluation = { + implicitReceivers( + kotlin.script.experimental.jvmhost.test.forScript.p1.TestClass("4"), + kotlin.script.experimental.jvmhost.test.forScript.p2.TestClass("2") + ) + } + ) + val output = captureOut { + val retVal = BasicJvmScriptingHost().eval( + script.toScriptSource(), definition.compilationConfiguration, definition.evaluationConfiguration + ).valueOrThrow().returnValue + if (retVal is ResultValue.Error) throw retVal.error + }.lines() + Assert.assertEquals(result, output) + } + @Test fun testProvidedPropertiesNullability() { val stringType = KotlinType(String::class) diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p1/TestClass.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p1/TestClass.kt new file mode 100644 index 00000000000..d21dffc4c38 --- /dev/null +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p1/TestClass.kt @@ -0,0 +1,8 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package kotlin.script.experimental.jvmhost.test.forScript.p1 + +class TestClass(val v1: String) \ No newline at end of file diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p2/TestClass.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p2/TestClass.kt new file mode 100644 index 00000000000..63fe3b97fe2 --- /dev/null +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/forScript/p2/TestClass.kt @@ -0,0 +1,8 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package kotlin.script.experimental.jvmhost.test.forScript.p2 + +class TestClass(val v2: String) \ No newline at end of file