Fix and test evaluation of scripts with default configurations

This commit is contained in:
Ilya Chernikov
2019-07-23 15:54:11 +02:00
parent 961607673d
commit cefd4a35c5
@@ -31,16 +31,22 @@ interface CompiledJvmScriptsCache {
} }
open class JvmScriptCompiler( open class JvmScriptCompiler(
hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration, baseHostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingHostConfiguration,
val compilerProxy: ScriptJvmCompilerProxy = ScriptJvmCompilerIsolated(hostConfiguration.withDefaults()), compilerProxy: ScriptJvmCompilerProxy? = null,
val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache
) : ScriptCompiler { ) : ScriptCompiler {
val hostConfiguration = baseHostConfiguration.withDefaults()
val compilerProxy: ScriptJvmCompilerProxy = compilerProxy ?: ScriptJvmCompilerIsolated(hostConfiguration)
override suspend operator fun invoke( override suspend operator fun invoke(
script: SourceCode, script: SourceCode,
scriptCompilationConfiguration: ScriptCompilationConfiguration scriptCompilationConfiguration: ScriptCompilationConfiguration
): ResultWithDiagnostics<CompiledScript<*>> = ): ResultWithDiagnostics<CompiledScript<*>> =
scriptCompilationConfiguration.refineBeforeParsing(script).onSuccess { refinedConfiguration -> scriptCompilationConfiguration.with {
hostConfiguration(this@JvmScriptCompiler.hostConfiguration)
}.refineBeforeParsing(script).onSuccess { refinedConfiguration ->
val cached = cache.get(script, refinedConfiguration) val cached = cache.get(script, refinedConfiguration)
if (cached != null) return cached.asSuccess() if (cached != null) return cached.asSuccess()