Import scope of the imported script
#KT-34178
This commit is contained in:
+1
-1
@@ -41,7 +41,7 @@ class MainKtsIT {
|
|||||||
|
|
||||||
runWithK2JVMCompiler(
|
runWithK2JVMCompiler(
|
||||||
"$TEST_DATA_ROOT/import-test.main.kts",
|
"$TEST_DATA_ROOT/import-test.main.kts",
|
||||||
listOf("Hi from common", "Hi from middle", "sharedVar == 5"),
|
listOf("Hi from common", "Hi from middle", "Hi from main", "sharedVar == 5"),
|
||||||
classpath = listOf(mainKtsJar)
|
classpath = listOf(mainKtsJar)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ fun evalFile(scriptFile: File, cacheDir: File? = null): ResultWithDiagnostics<Ev
|
|||||||
|
|
||||||
|
|
||||||
const val TEST_DATA_ROOT = "libraries/tools/kotlin-main-kts-test/testData"
|
const val TEST_DATA_ROOT = "libraries/tools/kotlin-main-kts-test/testData"
|
||||||
val OUT_FROM_IMPORT_TEST = listOf("Hi from common", "Hi from middle", "sharedVar == 5")
|
val OUT_FROM_IMPORT_TEST = listOf("Hi from common", "Hi from middle", "Hi from main", "sharedVar == 5")
|
||||||
|
|
||||||
|
|
||||||
class MainKtsTest {
|
class MainKtsTest {
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
|
|
||||||
var sharedVar = 2
|
var sharedVar = 2
|
||||||
|
|
||||||
println("Hi from common")
|
class SharedClass(val msg: String)
|
||||||
|
|
||||||
|
object SharedObject {
|
||||||
|
val greeting = "Hi"
|
||||||
|
}
|
||||||
|
|
||||||
|
println("${SharedObject.greeting} from common")
|
||||||
|
|||||||
@@ -3,4 +3,6 @@
|
|||||||
|
|
||||||
sharedVar *= 2
|
sharedVar *= 2
|
||||||
|
|
||||||
println("Hi from middle")
|
val from = SharedClass("from")
|
||||||
|
|
||||||
|
println("${SharedObject.greeting} ${from.msg} middle")
|
||||||
|
|||||||
@@ -4,4 +4,5 @@
|
|||||||
|
|
||||||
sharedVar = sharedVar + 1
|
sharedVar = sharedVar + 1
|
||||||
|
|
||||||
|
println("${SharedObject.greeting} ${from.msg} main")
|
||||||
println("sharedVar == $sharedVar")
|
println("sharedVar == $sharedVar")
|
||||||
|
|||||||
+4
-1
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||||
|
import org.jetbrains.kotlin.resolve.AllUnderImportScope
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
@@ -34,6 +35,7 @@ import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeImpl
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeKind
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScopeKind
|
||||||
|
import org.jetbrains.kotlin.resolve.scopes.utils.addImportingScope
|
||||||
import org.jetbrains.kotlin.resolve.source.toSourceElement
|
import org.jetbrains.kotlin.resolve.source.toSourceElement
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
|
||||||
@@ -43,7 +45,6 @@ import org.jetbrains.kotlin.types.TypeSubstitutor
|
|||||||
import org.jetbrains.kotlin.types.typeUtil.isNothing
|
import org.jetbrains.kotlin.types.typeUtil.isNothing
|
||||||
import org.jetbrains.kotlin.types.typeUtil.isUnit
|
import org.jetbrains.kotlin.types.typeUtil.isUnit
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
import java.io.File
|
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
import kotlin.reflect.KType
|
import kotlin.reflect.KType
|
||||||
import kotlin.script.experimental.api.*
|
import kotlin.script.experimental.api.*
|
||||||
@@ -285,6 +286,8 @@ class LazyScriptDescriptor(
|
|||||||
true,
|
true,
|
||||||
receiverClassDescriptor.thisAsReceiverParameter,
|
receiverClassDescriptor.thisAsReceiverParameter,
|
||||||
LexicalScopeKind.CLASS_MEMBER_SCOPE
|
LexicalScopeKind.CLASS_MEMBER_SCOPE
|
||||||
|
).addImportingScope(
|
||||||
|
AllUnderImportScope.create(receiverClassDescriptor, emptyList())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
outerScope
|
outerScope
|
||||||
|
|||||||
Reference in New Issue
Block a user