diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index 7cbc01f3046..f089a19a954 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -240,14 +240,14 @@ fun loadDefinitionsFromTemplates( // TODO: drop class loading here - it should be handled downstream // as a compatibility measure, the asm based reading of annotations should be implemented to filter classes before classloading val template = loader.loadClass(templateClassName).kotlin + val hostConfiguration = ScriptingHostConfiguration(baseHostConfiguration) { + configurationDependencies(JvmDependency(classpath)) + } when { template.annotations.firstIsInstanceOrNull() != null -> { - ScriptDefinition.FromLegacyTemplate(baseHostConfiguration, template, templateClasspath) + ScriptDefinition.FromLegacyTemplate(hostConfiguration, template, templateClasspath) } template.annotations.firstIsInstanceOrNull() != null -> { - val hostConfiguration = ScriptingHostConfiguration(baseHostConfiguration) { - configurationDependencies(JvmDependency(classpath)) - } ScriptDefinition.FromTemplate(hostConfiguration, template, ScriptDefinition::class) } else -> { diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt index ff2c546a37e..42540d9be7b 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt @@ -104,7 +104,7 @@ class JvmGetScriptingClass : GetScriptingClass, Serializable { return try { (classLoader ?: ClassLoader.getSystemClassLoader()).loadClass(classType.typeName).kotlin } catch (e: Throwable) { - throw IllegalArgumentException("unable to load class $classType", e) + throw IllegalArgumentException("unable to load class ${classType.typeName}", e) } } diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/repl/GenericReplChecker.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/repl/GenericReplChecker.kt index 78bf3724ac4..677df5ca82a 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/repl/GenericReplChecker.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/repl/GenericReplChecker.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.repl.* import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.JvmTarget @@ -28,6 +29,9 @@ import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.repl.messages.ConsoleDiagnosticMessageHolder import kotlin.concurrent.write +import kotlin.script.experimental.host.ScriptingHostConfiguration +import kotlin.script.experimental.host.configurationDependencies +import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration const val KOTLIN_REPL_JVM_TARGET_PROPERTY = "kotlin.repl.jvm.target" @@ -41,7 +45,10 @@ open class GenericReplChecker( internal val environment = run { compilerConfiguration.apply { - add(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, ScriptDefinition.FromLegacy(defaultJvmScriptingHostConfiguration, scriptDefinition)) + val hostConfiguration = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) { + configurationDependencies(JvmDependency(jvmClasspathRoots)) + } + add(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, ScriptDefinition.FromLegacy(hostConfiguration, scriptDefinition)) put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector) put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true)