Scripting: add test for implicit receivers with the same short name
This commit is contained in:
committed by
Space Team
parent
3dc94f3d31
commit
3ee07eb015
+27
@@ -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<SimpleScriptTemplate>(
|
||||
compilation = {
|
||||
updateClasspath(classpathFromClass<kotlin.script.experimental.jvmhost.test.forScript.p1.TestClass>())
|
||||
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)
|
||||
|
||||
+8
@@ -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)
|
||||
+8
@@ -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)
|
||||
Reference in New Issue
Block a user