From cefd4a35c5b2dccc8e1a0e3f0491d4bcb83d557d Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 23 Jul 2019 15:54:11 +0200 Subject: [PATCH] Fix and test evaluation of scripts with default configurations --- .../experimental/jvmhost/jvmScriptCompilation.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jvmScriptCompilation.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jvmScriptCompilation.kt index e3967fe09bf..78ad1ffbc2e 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jvmScriptCompilation.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/jvmScriptCompilation.kt @@ -31,16 +31,22 @@ interface CompiledJvmScriptsCache { } open class JvmScriptCompiler( - hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration, - val compilerProxy: ScriptJvmCompilerProxy = ScriptJvmCompilerIsolated(hostConfiguration.withDefaults()), + baseHostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration, + compilerProxy: ScriptJvmCompilerProxy? = null, val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache ) : ScriptCompiler { + val hostConfiguration = baseHostConfiguration.withDefaults() + + val compilerProxy: ScriptJvmCompilerProxy = compilerProxy ?: ScriptJvmCompilerIsolated(hostConfiguration) + override suspend operator fun invoke( script: SourceCode, scriptCompilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> = - scriptCompilationConfiguration.refineBeforeParsing(script).onSuccess { refinedConfiguration -> + scriptCompilationConfiguration.with { + hostConfiguration(this@JvmScriptCompiler.hostConfiguration) + }.refineBeforeParsing(script).onSuccess { refinedConfiguration -> val cached = cache.get(script, refinedConfiguration) if (cached != null) return cached.asSuccess()