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 cecdb4880dd..988c5797df3 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 @@ -40,8 +40,8 @@ import kotlin.concurrent.read import kotlin.concurrent.write import kotlin.script.dependencies.Environment import kotlin.script.dependencies.ScriptContents -import kotlin.script.experimental.api.ScriptingEnvironment -import kotlin.script.experimental.api.ScriptingEnvironmentParams +import kotlin.script.experimental.api.ChainedPropertyBag +import kotlin.script.experimental.api.ScriptingEnvironmentProperties import kotlin.script.experimental.definitions.ScriptDefinitionFromAnnotatedBaseClass import kotlin.script.experimental.dependencies.DependenciesResolver import kotlin.script.experimental.dependencies.ScriptDependencies @@ -165,7 +165,7 @@ fun loadDefinitionsFromTemplates( } template.annotations.firstIsInstanceOrNull() != null -> { KotlinScriptDefinitionAdapterFromNewAPI( - ScriptDefinitionFromAnnotatedBaseClass(ScriptingEnvironment(ScriptingEnvironmentParams.baseClass to template)) + ScriptDefinitionFromAnnotatedBaseClass(ChainedPropertyBag(ScriptingEnvironmentProperties.baseClass to template)) ) } else -> { diff --git a/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt index 17f00f14fce..daa362e6f69 100644 --- a/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt +++ b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt @@ -19,7 +19,7 @@ import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl fun evalFile(scriptFile: File): ResultWithDiagnostics { val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(), DummyCompiledJvmScriptCache()) val scriptDefinition = ScriptDefinitionFromAnnotatedBaseClass( - ScriptingEnvironment(ScriptingEnvironmentParams.baseClass to MyScriptWithMavenDeps::class) + ChainedPropertyBag(ScriptingEnvironmentProperties.baseClass to MyScriptWithMavenDeps::class) ) val host = JvmBasicScriptingHost( diff --git a/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt b/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt index f1b3963841e..bc5991416f5 100644 --- a/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt +++ b/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt @@ -27,7 +27,7 @@ abstract class MyScriptWithMavenDeps { } inline fun myJvmConfig( - from: HeterogeneousMap = HeterogeneousMap(), + from: ChainedPropertyBag = ChainedPropertyBag(), crossinline body: JvmScriptCompileConfigurationParams.Builder.() -> Unit = {} ) = jvmConfigWithJavaHome(from) { signature() @@ -42,12 +42,12 @@ inline fun myJvmConfig( body() } -class MyConfigurator(val environment: ScriptingEnvironment) : ScriptCompilationConfigurator { +class MyConfigurator(val environment: ChainedPropertyBag) : ScriptCompilationConfigurator { private val resolver = FilesAndMavenResolver() override val defaultConfiguration = myJvmConfig { - add(ScriptCompileConfigurationParams.baseClass to environment[ScriptingEnvironmentParams.baseClass]) + add(ScriptCompileConfigurationParams.baseClass to environment[ScriptingEnvironmentProperties.baseClass]) } override suspend fun baseConfiguration(scriptSource: ScriptSource): ResultWithDiagnostics = diff --git a/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt b/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt index 4d5d440e9a8..651d6ff1566 100644 --- a/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt +++ b/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt @@ -15,7 +15,7 @@ import kotlin.script.experimental.jvm.* import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl inline fun myJvmConfig( - from: HeterogeneousMap = HeterogeneousMap(), + from: ChainedPropertyBag = ChainedPropertyBag(), crossinline body: JvmScriptCompileConfigurationParams.Builder.() -> Unit = {} ) = jvmConfigWithJavaHome(from) { signature() @@ -26,7 +26,7 @@ inline fun myJvmConfig( fun evalFile(scriptFile: File): ResultWithDiagnostics { val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(), DummyCompiledJvmScriptCache()) val scriptDefinition = ScriptDefinitionFromAnnotatedBaseClass( - ScriptingEnvironment(ScriptingEnvironmentParams.baseClass to MyScript::class) + ChainedPropertyBag(ScriptingEnvironmentProperties.baseClass to MyScript::class) ) val host = JvmBasicScriptingHost( diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt index ccb06252eb5..410f882f87e 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt @@ -8,14 +8,14 @@ package kotlin.script.experimental.api -typealias ScriptCompileConfiguration = HeterogeneousMap +typealias ScriptCompileConfiguration = ChainedPropertyBag -typealias ProcessedScriptData = HeterogeneousMap +typealias ProcessedScriptData = ChainedPropertyBag interface ScriptCompilationConfigurator { - // constructor(environment: ScriptingEnvironment) // the constructor is expected from implementations + // constructor(environment: ChainedPropertyBag) // the constructor is expected from implementations val defaultConfiguration: ScriptCompileConfiguration diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt index 14ebb39945f..02ac0a5e0b3 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfigurationParams.kt @@ -31,21 +31,10 @@ object ScriptCompileConfigurationParams { val updateConfigurationOnSections by typedKey>() - open class Builder : HeterogeneousMapBuilder() { + open class Builder(parentBuilder: PropertyBagBuilder? = null) : PropertyBagBuilder(parentBuilder) { inline fun signature(providedDeclarations: ProvidedDeclarations = ProvidedDeclarations.Empty) { add(scriptSignature to ScriptSignature(T::class, providedDeclarations)) } } } -// DSL -inline fun scriptConfiguration(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptCompileConfigurationParams.Builder.() -> Unit) = - ScriptCompileConfigurationParams.Builder().build(from, body) - - -fun ScriptSource.toScriptCompileConfiguration(vararg pairs: Pair, Any?>) = - ScriptCompileConfiguration(ScriptCompileConfigurationParams.scriptSourceFragments to ScriptSourceFragments(this, null), *pairs) - -fun ScriptSource?.toConfigEntry(): Pair, Any?> = - ScriptCompileConfigurationParams.scriptSourceFragments to this?.let { ScriptSourceFragments(this, null) } - diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt index 2f0dd6123a3..16d26793119 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt @@ -10,9 +10,9 @@ package kotlin.script.experimental.api interface ScriptDefinition { - // constructor(environment: ScriptingEnvironment) // the constructor is expected from implementations + // constructor(environment: ChainedPropertyBag) // the constructor is expected from implementations - val properties: ScriptDefinitionPropertiesBag + val properties: ChainedPropertyBag val compilationConfigurator: ScriptCompilationConfigurator diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinitionProperties.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinitionProperties.kt index 835139cb357..712f50cb70d 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinitionProperties.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinitionProperties.kt @@ -7,22 +7,12 @@ package kotlin.script.experimental.api - -typealias ScriptDefinitionPropertiesBag = HeterogeneousMap - - -object ScriptDefinitionProperties { +object ScriptDefinitionProperties : PropertiesBase() { val name by typedKey() val fileExtension by typedKey() - val makeTitle by typedKey<(String) -> String>() - - open class Builder : HeterogeneousMapBuilder() { - inline fun makeTitle(noinline fn: (String) -> String) { - add(makeTitle to fn) - } - } + open class Builder(parentBuilder: PropertyBagBuilder? = null) : PropertyBagBuilder(parentBuilder) } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt index bba602d2b91..22c770f602a 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt @@ -7,7 +7,7 @@ package kotlin.script.experimental.api -open class ScriptEvaluationEnvironmentParams : HeterogeneousMapBuilder() { +open class ScriptEvaluationEnvironmentParams : PropertyBagBuilder() { companion object { val implicitReceivers by typedKey>() @@ -19,17 +19,17 @@ open class ScriptEvaluationEnvironmentParams : HeterogeneousMapBuilder() { } } -inline fun scriptEvaluationEnvironment(from: HeterogeneousMap = HeterogeneousMap(), body: ScriptEvaluationEnvironmentParams.() -> Unit) = +inline fun scriptEvaluationEnvironment(from: ChainedPropertyBag = ChainedPropertyBag(), body: ScriptEvaluationEnvironmentParams.() -> Unit) = ScriptEvaluationEnvironmentParams().build(from, body) -typealias ScriptEvaluationEnvironment = HeterogeneousMap +typealias ScriptEvaluationEnvironment = ChainedPropertyBag data class EvaluationResult(val returnValue: Any?, val environment: ScriptEvaluationEnvironment) // NOTE: name inconsistency: run vs evaluate interface ScriptEvaluator { - // constructor(environment: ScriptingEnvironment) // the constructor is expected from implementations + // constructor(environment: ChainedPropertyBag) // the constructor is expected from implementations suspend fun eval( compiledScript: CompiledScript, diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt index dfff0d535df..4885ba5a4e2 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptProcessedDataParams.kt @@ -5,7 +5,7 @@ package kotlin.script.experimental.api -class ProcessedScriptDataParams : HeterogeneousMapBuilder() { +class ProcessedScriptDataParams : PropertyBagBuilder() { companion object { val annotations by typedKey>() @@ -13,5 +13,5 @@ class ProcessedScriptDataParams : HeterogeneousMapBuilder() { } } -inline fun processedScriptData(from: HeterogeneousMap = HeterogeneousMap(), body: ProcessedScriptDataParams.() -> Unit) = +inline fun processedScriptData(from: ChainedPropertyBag = ChainedPropertyBag(), body: ProcessedScriptDataParams.() -> Unit) = ProcessedScriptDataParams().build(from, body) \ No newline at end of file diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt index 403da7e7f4c..aab02c62b88 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptUtil.kt @@ -6,8 +6,7 @@ package kotlin.script.experimental.api import kotlin.reflect.KProperty - -// copy placed into package org.jetbrains.kotlin.utils.addToStdlib as well +import kotlin.reflect.full.primaryConstructor data class TypedKey(val name: String) @@ -17,23 +16,27 @@ class TypedKeyDelegate { fun typedKey() = TypedKeyDelegate() -class HeterogeneousMap(private val data: Map, Any?> = hashMapOf()) { - constructor(vararg pairs: Pair, Any?>) : this(hashMapOf(*pairs)) - constructor(from: HeterogeneousMap, vararg pairs: Pair, Any?>) : this(HashMap(from.data).apply { putAll(pairs) }) - constructor(from: HeterogeneousMap, pairs: Iterable, Any?>>) : this(HashMap(from.data).apply { putAll(pairs) }) +class ChainedPropertyBag(private val parent: ChainedPropertyBag? = null, private val data: Map, Any?> = hashMapOf()) { + constructor(data: Map, Any?>) : this(null, data) + constructor(parent: ChainedPropertyBag?, pairs: Iterable, Any?>>) : this( + parent, + HashMap, Any?>().also { + it.putAll(pairs) + }) + + constructor(parent: ChainedPropertyBag?, vararg pairs: Pair, Any?>) : this(parent, hashMapOf(*pairs)) operator fun get(key: TypedKey): T = - if (data.containsKey(key)) data[key] as T - else throw IllegalArgumentException("Unknown key $key") + when { + data.containsKey(key) -> data[key] as T + parent != null -> parent[key] + else -> throw IllegalArgumentException("Unknown key $key") + } - fun getOrNull(key: TypedKey): T? = data[key] as T? + fun getOrNull(key: TypedKey): T? = data[key] as T? ?: parent?.getOrNull(key) } -fun HeterogeneousMap.cloneWith(vararg pairs: Pair, Any?>) = HeterogeneousMap(this, *pairs) - -fun HeterogeneousMap.cloneWith(pairs: Iterable, Any?>>) = HeterogeneousMap(this, pairs) - -open class HeterogeneousMapBuilder { +open class PropertyBagBuilder(private val parentBuilder: PropertyBagBuilder? = null) { val pairs: MutableList, Any?>> = arrayListOf() open operator fun TypedKey.invoke(v: T) { @@ -43,9 +46,11 @@ open class HeterogeneousMapBuilder { fun add(pair: Pair, Any?>) { pairs.add(pair) } + + fun getAllPairs() = if (parentBuilder == null) pairs else parentBuilder.pairs + pairs } -inline fun T.build(from: HeterogeneousMap = HeterogeneousMap(), body: T.() -> Unit): HeterogeneousMap { +inline fun T.build(parent: ChainedPropertyBag? = null, body: T.() -> Unit): ChainedPropertyBag { body() - return HeterogeneousMap(from, pairs) + return ChainedPropertyBag(parent, getAllPairs()) } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptingEnvironment.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptingEnvironment.kt index 3c4ddcc3dd0..3a233777ea5 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptingEnvironment.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptingEnvironment.kt @@ -7,13 +7,11 @@ package kotlin.script.experimental.api import kotlin.reflect.KClass -typealias ScriptingEnvironment = HeterogeneousMap - -object ScriptingEnvironmentParams { +object ScriptingEnvironmentProperties { // required by definitions that extract data from script base class annotations val baseClass by typedKey>() - open class Builder : HeterogeneousMapBuilder() + open class Builder(parentBuilder: PropertyBagBuilder? = null) : PropertyBagBuilder(parentBuilder) } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/basic/basicScript.kt b/libraries/scripting/common/src/kotlin/script/experimental/basic/basicScript.kt index 05d5c2e3a56..d9554a2b73e 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/basic/basicScript.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/basic/basicScript.kt @@ -8,10 +8,10 @@ package kotlin.script.experimental.basic import kotlin.script.experimental.api.* -class PassThroughCompilationConfigurator(val environment: ScriptingEnvironment) : ScriptCompilationConfigurator { +class PassThroughCompilationConfigurator(val environment: ChainedPropertyBag) : ScriptCompilationConfigurator { override val defaultConfiguration = ScriptCompileConfiguration( - ScriptCompileConfigurationParams.baseClass to environment[ScriptingEnvironmentParams.baseClass] + ScriptCompileConfigurationParams.baseClass to environment[ScriptingEnvironmentProperties.baseClass] ) override suspend fun baseConfiguration(scriptSource: ScriptSource): ResultWithDiagnostics = @@ -24,7 +24,7 @@ class PassThroughCompilationConfigurator(val environment: ScriptingEnvironment) configuration.asSuccess() } -class DummyEvaluator(val environment: ScriptingEnvironment) : ScriptEvaluator { +class DummyEvaluator(val environment: ChainedPropertyBag) : ScriptEvaluator { override suspend fun eval( compiledScript: CompiledScript, scriptEvaluationEnvironment: ScriptEvaluationEnvironment diff --git a/libraries/scripting/common/src/kotlin/script/experimental/definitions/scriptDefinitions.kt b/libraries/scripting/common/src/kotlin/script/experimental/definitions/scriptDefinitions.kt index 92889aae11d..7d07b76389c 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/definitions/scriptDefinitions.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/definitions/scriptDefinitions.kt @@ -18,9 +18,9 @@ import kotlin.script.experimental.basic.PassThroughCompilationConfigurator private const val ERROR_MSG_PREFIX = "Unable to construct script definition: " -open class ScriptDefinitionFromAnnotatedBaseClass(val environment: ScriptingEnvironment) : ScriptDefinition { +open class ScriptDefinitionFromAnnotatedBaseClass(val environment: ChainedPropertyBag) : ScriptDefinition { - private val baseClass: KClass<*> = environment.getOrNull(ScriptingEnvironmentParams.baseClass) + private val baseClass: KClass<*> = environment.getOrNull(ScriptingEnvironmentProperties.baseClass) ?: throw IllegalArgumentException("${ERROR_MSG_PREFIX}Expecting baseClass parameter in the scripting environment") private val mainAnnotation = baseClass.findAnnotation() @@ -29,7 +29,7 @@ open class ScriptDefinitionFromAnnotatedBaseClass(val environment: ScriptingEnvi private val explicitDefinition: ScriptDefinition? = mainAnnotation.definition.takeIf { it != this::class }?.let { it.instantiateScriptHandler() } - override val properties = (explicitDefinition?.properties ?: ScriptDefinitionPropertiesBag()).also { properties -> + override val properties = (explicitDefinition?.properties ?: ChainedPropertyBag()).also { properties -> val toAdd = arrayListOf, Any>>() baseClass.findAnnotation()?.let { toAdd += ScriptDefinitionProperties.fileExtension to it } if (properties.getOrNull(ScriptDefinitionProperties.name) == null) { diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt index 9f048195c5e..52d5236d281 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptConfiguration.kt @@ -11,7 +11,7 @@ import java.io.File import kotlin.script.experimental.jvm.JvmScriptCompileConfigurationParams.javaHomeDir inline fun jvmConfigWithJavaHome( - from: HeterogeneousMap = HeterogeneousMap(), + from: ChainedPropertyBag = ChainedPropertyBag(), crossinline body: JvmScriptCompileConfigurationParams.Builder.() -> Unit = {} ) = jvmScriptConfiguration(from) { diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt index 854048c5923..8faf8e7c952 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptData.kt @@ -17,7 +17,7 @@ object JvmScriptCompileConfigurationParams { } } -inline fun jvmScriptConfiguration(from: HeterogeneousMap = HeterogeneousMap(), body: JvmScriptCompileConfigurationParams.Builder.() -> Unit) = +inline fun jvmScriptConfiguration(from: ChainedPropertyBag = ChainedPropertyBag(), body: JvmScriptCompileConfigurationParams.Builder.() -> Unit) = JvmScriptCompileConfigurationParams.Builder().build(from, body) class JvmDependency(val classpath: Iterable) : ScriptDependency diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt index dd548aac27e..8026bf844a1 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptEvaluation.kt @@ -22,5 +22,5 @@ class JvmScriptEvaluationEnvironmentParams : ScriptEvaluationEnvironmentParams() } } -inline fun jvmScriptEvaluationEnvironment(from: HeterogeneousMap = HeterogeneousMap(), body: JvmScriptEvaluationEnvironmentParams.() -> Unit) = +inline fun jvmScriptEvaluationEnvironment(from: ChainedPropertyBag = ChainedPropertyBag(), body: JvmScriptEvaluationEnvironmentParams.() -> Unit) = JvmScriptEvaluationEnvironmentParams().build(from, body) diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/runners/BasicJvmScriptEvaluator.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/runners/BasicJvmScriptEvaluator.kt index 3dce16cf58a..47ef88d200e 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/runners/BasicJvmScriptEvaluator.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/runners/BasicJvmScriptEvaluator.kt @@ -7,7 +7,7 @@ package kotlin.script.experimental.jvm.runners import kotlin.script.experimental.api.* -open class BasicJvmScriptEvaluator(val environment: ScriptingEnvironment) : ScriptEvaluator { +open class BasicJvmScriptEvaluator(val environment: ChainedPropertyBag) : ScriptEvaluator { override suspend fun eval( compiledScript: CompiledScript, diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt index d1aa2c1509b..af5e3e720ee 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt +++ b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerConfigurationExtension.kt @@ -20,8 +20,8 @@ import java.io.File import java.io.IOException import java.net.URLClassLoader import java.util.jar.JarFile -import kotlin.script.experimental.api.ScriptingEnvironment -import kotlin.script.experimental.api.ScriptingEnvironmentParams +import kotlin.script.experimental.api.ChainedPropertyBag +import kotlin.script.experimental.api.ScriptingEnvironmentProperties import kotlin.script.experimental.definitions.ScriptDefinitionFromAnnotatedBaseClass class ScriptingCompilerConfigurationExtension(val project: MockProject) : CompilerConfigurationExtension { @@ -127,7 +127,7 @@ fun configureScriptDefinitions( val def = if (cls.annotations.firstIsInstanceOrNull() != null) { KotlinScriptDefinitionAdapterFromNewAPI( - ScriptDefinitionFromAnnotatedBaseClass(ScriptingEnvironment(ScriptingEnvironmentParams.baseClass to cls.kotlin)) + ScriptDefinitionFromAnnotatedBaseClass(ChainedPropertyBag(ScriptingEnvironmentProperties.baseClass to cls.kotlin)) ) } else { KotlinScriptDefinitionFromAnnotatedTemplate(cls.kotlin, scriptResolverEnv)