diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt index 6e7d267c194..912421b9b36 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt @@ -35,7 +35,6 @@ import org.jetbrains.kotlin.script.KotlinScriptDefinition import org.jetbrains.kotlin.script.util.KotlinJars import java.io.File import java.net.URLClassLoader -import kotlin.reflect.KClass import kotlin.script.experimental.api.* import kotlin.script.experimental.dependencies.DependenciesResolver import kotlin.script.experimental.host.getMergedScriptText @@ -82,8 +81,10 @@ class KJVMCompilerImpl : KJVMCompilerProxy { ResultWithDiagnostics.Failure(*messageCollector.diagnostics.toTypedArray(), *diagnostics) try { + val scriptCompileConfiguration = configurator?.defaultConfiguration?.let { additionalConfiguration.cloneWithNewParent(it) } + ?: additionalConfiguration var environment: KotlinCoreEnvironment? = null - var updatedScriptCompileConfiguration = additionalConfiguration + var updatedScriptCompileConfiguration = scriptCompileConfiguration fun updateClasspath(classpath: List) { environment!!.updateClasspath(classpath.map(::JvmClasspathRoot)) @@ -100,18 +101,18 @@ class KJVMCompilerImpl : KJVMCompilerProxy { val kotlinCompilerConfiguration = org.jetbrains.kotlin.config.CompilerConfiguration().apply { add( JVMConfigurationKeys.SCRIPT_DEFINITIONS, - BridgeScriptDefinition(additionalConfiguration, configurator, ::updateClasspath) + BridgeScriptDefinition(scriptCompileConfiguration, configurator, ::updateClasspath) ) put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector) put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true) var isModularJava = false - additionalConfiguration.getOrNull(JvmScriptCompileConfigurationProperties.javaHomeDir)?.let { + scriptCompileConfiguration.getOrNull(JvmScriptCompileConfigurationProperties.javaHomeDir)?.let { put(JVMConfigurationKeys.JDK_HOME, it) isModularJava = CoreJrtFileSystem.isModularJdk(it) } - additionalConfiguration.getOrNull(ScriptCompileConfigurationProperties.dependencies)?.let { + scriptCompileConfiguration.getOrNull(ScriptCompileConfigurationProperties.dependencies)?.let { addJvmClasspathRoots( it.flatMap { (it as JvmDependency).classpath @@ -143,7 +144,7 @@ class KJVMCompilerImpl : KJVMCompilerProxy { val analyzerWithCompilerReport = AnalyzerWithCompilerReport(messageCollector, environment.configuration.languageVersionSettings) val psiFileFactory: PsiFileFactoryImpl = PsiFileFactory.getInstance(environment.project) as PsiFileFactoryImpl - val scriptText = getMergedScriptText(script, additionalConfiguration) + val scriptText = getMergedScriptText(script, scriptCompileConfiguration) val scriptFileName = "script" // TODO: extract from file/url if available val virtualFile = LightVirtualFile( "$scriptFileName${KotlinParserDefinition.STD_SCRIPT_EXT}",