diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JvmCliScriptEvaluationExtension.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JvmCliScriptEvaluationExtension.kt index e2fbc8f1b52..b88de350c08 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JvmCliScriptEvaluationExtension.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JvmCliScriptEvaluationExtension.kt @@ -40,6 +40,12 @@ class JvmCliScriptEvaluationExtension : ScriptEvaluationExtension { return COMPILATION_ERROR } val sourcePath = arguments.freeArgs.first() + + configuration.addKotlinSourceRoot(sourcePath) + configuration.put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true) + val coreEnvironment = + KotlinCoreEnvironment.createForProduction(projectEnvironment, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) + val scriptFile = File(sourcePath) if (scriptFile.isDirectory || !scriptDefinitionProvider.isScript(scriptFile.name)) { val extensionHint = @@ -48,14 +54,9 @@ class JvmCliScriptEvaluationExtension : ScriptEvaluationExtension { messageCollector.report(ERROR, "Specify path to the script file$extensionHint as the first argument") return COMPILATION_ERROR } - configuration.addKotlinSourceRoot(sourcePath) - configuration.put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true) val scriptArgs = arguments.freeArgs.subList(1, arguments.freeArgs.size) - val coreEnvironment = - KotlinCoreEnvironment.createForProduction(projectEnvironment, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) - return KotlinToJVMBytecodeCompiler.compileAndExecuteScript(coreEnvironment, scriptArgs) } } \ No newline at end of file diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/CliScriptDefinitionProvider.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/CliScriptDefinitionProvider.kt index 28b33009c47..bbeb37d7d21 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/CliScriptDefinitionProvider.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/definitions/CliScriptDefinitionProvider.kt @@ -28,6 +28,7 @@ open class CliScriptDefinitionProvider : LazyScriptDefinitionProvider() { definitions.addAll(withoutStdDef) // TODO: consider reporting an error when several default definitions are supplied defaultDefinition = stdDef.firstOrNull() + clearCache() } } @@ -37,6 +38,7 @@ open class CliScriptDefinitionProvider : LazyScriptDefinitionProvider() { for (it in newSources) { definitionsFromSources.add(it.definitions.constrainOnce()) } + clearCache() } }