From bd8f2a81e9536a699a02b521729c0f00e76939d5 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Mon, 20 Aug 2018 19:33:28 +0300 Subject: [PATCH] Rename ScriptDefinition to ScriptCompileConfiguration --- .../AbstractCustomScriptCodegenTest.kt | 10 ++-- .../core/script/ScriptDefinitionsManager.kt | 8 ++- .../examples/jvm/resolve/maven/host/host.kt | 6 +- .../examples/jvm/resolve/maven/scriptDef.kt | 8 +-- .../script/examples/jvm/simple/host/host.kt | 6 +- .../annotations/scriptAnnotations.kt | 6 +- .../experimental/api/scriptCompilation.kt | 4 +- .../experimental/api/scriptConfiguration.kt | 4 +- .../experimental/api/scriptDefinition.kt | 58 ++++++++++--------- .../experimental/api/scriptEvaluation.kt | 2 +- .../definitionFromAnnotation.kt | 22 +++---- .../experimental/host/BasicScriptingHost.kt | 4 +- .../experimental/host/scriptHostUtil.kt | 4 +- .../experimental/repl/replCompilation.kt | 4 +- .../script/experimental/repl/replHost.kt | 4 +- .../jvmhost/BasicJvmScriptingHost.kt | 15 +++-- .../jvmhost/impl/KJVMCompilerImpl.kt | 28 ++++----- .../jvmhost/jvmScriptCompilation.kt | 18 +++--- .../jvm/impl/BridgeDependenciesResolver.kt | 12 ++-- ...tDefinition.kt => jvmScriptCompilation.kt} | 20 +++---- ...KotlinScriptDefinitionAdapterFromNewAPI.kt | 22 +++---- ...LazyScriptDefinitionFromDiscoveredClass.kt | 12 ++-- ...DefinitionsFromClasspathDiscoverySource.kt | 4 +- 23 files changed, 146 insertions(+), 135 deletions(-) rename libraries/scripting/common/src/kotlin/script/experimental/{definitions => configuration}/definitionFromAnnotation.kt (73%) rename libraries/scripting/jvm/src/kotlin/script/experimental/jvm/{jvmScriptDefinition.kt => jvmScriptCompilation.kt} (56%) diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/AbstractCustomScriptCodegenTest.kt b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractCustomScriptCodegenTest.kt index f653b07ef49..160855ec81e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/AbstractCustomScriptCodegenTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractCustomScriptCodegenTest.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.utils.PathUtil.KOTLIN_SCRIPTING_JVM_JAR import org.junit.Assert import java.io.File import kotlin.script.experimental.annotations.KotlinScript -import kotlin.script.experimental.api.ScriptDefinition +import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.implicitReceivers import kotlin.script.experimental.api.providedProperties @@ -121,20 +121,20 @@ abstract class AbstractCustomScriptCodegenTest : CodegenTestCase() { } } -object TestScriptWithReceiversConfiguration : ScriptDefinition( +object TestScriptWithReceiversConfiguration : ScriptCompilationConfiguration( { implicitReceivers() }) @Suppress("unused") -@KotlinScript(definition = TestScriptWithReceiversConfiguration::class) +@KotlinScript(compilationConfiguration = TestScriptWithReceiversConfiguration::class) abstract class TestScriptWithReceivers -object TestScriptWithSimpleEnvVarsConfiguration : ScriptDefinition( +object TestScriptWithSimpleEnvVarsConfiguration : ScriptCompilationConfiguration( { providedProperties("stringVar1" to String::class) }) @Suppress("unused") -@KotlinScript(definition = TestScriptWithSimpleEnvVarsConfiguration::class) +@KotlinScript(compilationConfiguration = TestScriptWithSimpleEnvVarsConfiguration::class) abstract class TestScriptWithSimpleEnvVars 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 b7c017bc358..85cf1fbacde 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 @@ -51,7 +51,7 @@ import kotlin.script.dependencies.ScriptContents import kotlin.script.experimental.api.KotlinType import kotlin.script.experimental.api.ScriptingEnvironment import kotlin.script.experimental.api.configurationDependencies -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.configuration.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.dependencies.DependenciesResolver import kotlin.script.experimental.dependencies.ScriptDependencies import kotlin.script.experimental.dependencies.asSuccess @@ -213,7 +213,11 @@ fun loadDefinitionsFromTemplates( configurationDependencies(JvmDependency(classpath)) } KotlinScriptDefinitionAdapterFromNewAPI( - createScriptDefinitionFromAnnotatedBaseClass(KotlinType(template), hostEnvironment, KotlinScriptDefinition::class), + createScriptCompilationConfigurationFromAnnotatedBaseClass( + KotlinType( + template + ), hostEnvironment, KotlinScriptDefinition::class + ), hostEnvironment ) } 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 b71ba374c83..fc49dc15d19 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 @@ -11,13 +11,13 @@ import kotlin.script.experimental.api.EvaluationResult import kotlin.script.experimental.api.ResultWithDiagnostics import kotlin.script.experimental.host.toScriptSource import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost -import kotlin.script.experimental.jvmhost.createBasicScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.jvmhost.createBasicScriptCompilationConfigurationFromAnnotatedBaseClass fun evalFile(scriptFile: File): ResultWithDiagnostics { - val scriptDefinition = createBasicScriptDefinitionFromAnnotatedBaseClass() + val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass() - return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), scriptDefinition, null) + return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), compilationConfiguration, null) } fun main(vararg args: String) { 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 bd14b66f1f2..c0e5ef08e78 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 @@ -21,13 +21,13 @@ import kotlin.script.experimental.jvm.jvm @KotlinScript( extension = "scriptwithdeps.kts", - definition = MyScriptDefinition::class + compilationConfiguration = MyScriptCompilationConfiguration::class ) abstract class MyScriptWithMavenDeps { // abstract fun body(vararg args: String): Int } -object MyScriptDefinition : ScriptDefinition( +object MyScriptCompilationConfiguration : ScriptCompilationConfiguration( { defaultImports() defaultImports(Repository::class) @@ -49,7 +49,7 @@ object MyScriptDefinition : ScriptDefinition( private val resolver = FilesAndMavenResolver() -fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics { +fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics { val annotations = script.collectedData?.get(ScriptCollectedData.foundAnnotations)?.takeIf { it.isNotEmpty() } ?: return null.asSuccess() val scriptContents = object : ScriptContents { @@ -66,7 +66,7 @@ fun myConfigureOnAnnotations(script: ScriptDataFacade): ResultWithDiagnostics { - val scriptDefinition = createBasicScriptDefinitionFromAnnotatedBaseClass { + val compilationConfiguration = createBasicScriptCompilationConfigurationFromAnnotatedBaseClass { jvm { dependenciesFromCurrentContext( "scripting-jvm-simple-script" /* script library jar name */ @@ -24,7 +24,7 @@ fun evalFile(scriptFile: File): ResultWithDiagnostics { } } - return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), scriptDefinition, null) + return BasicJvmScriptingHost().eval(scriptFile.toScriptSource(), compilationConfiguration, null) } fun main(vararg args: String) { diff --git a/libraries/scripting/common/src/kotlin/script/experimental/annotations/scriptAnnotations.kt b/libraries/scripting/common/src/kotlin/script/experimental/annotations/scriptAnnotations.kt index 502afa53260..7b4c689a6f4 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/annotations/scriptAnnotations.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/annotations/scriptAnnotations.kt @@ -13,14 +13,14 @@ package kotlin.script.experimental.annotations import kotlin.reflect.KClass -import kotlin.script.experimental.api.ScriptDefinition +import kotlin.script.experimental.api.ScriptCompilationConfiguration @Target(AnnotationTarget.CLASS) @Retention(AnnotationRetention.RUNTIME) annotation class KotlinScript( val name: String = "Kotlin script", val extension: String = "kts", - val definition: KClass = ScriptDefinition.Default::class // object or class filled in 0-ary constructor + val compilationConfiguration: KClass = ScriptCompilationConfiguration.Default::class // object or class filled in 0-ary constructor ) @Target(AnnotationTarget.CLASS) @@ -32,5 +32,5 @@ annotation class KotlinScriptFileExtension( @Target(AnnotationTarget.CLASS) @Retention(AnnotationRetention.RUNTIME) annotation class KotlinScriptProperties( - val definition: KClass // object or class filled in 0-ary constructor + val compilationConfiguration: KClass // object or class filled in 0-ary constructor ) diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptCompilation.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptCompilation.kt index 2a04fc2c6c6..4bb9b36b20e 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptCompilation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptCompilation.kt @@ -9,14 +9,14 @@ interface ScriptCompiler { suspend operator fun invoke( script: ScriptSource, - scriptDefinition: ScriptDefinition + scriptCompilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> } interface CompiledScript { - val definition: ScriptDefinition + val compilationConfiguration: ScriptCompilationConfiguration suspend fun instantiate(scriptEvaluationEnvironment: ScriptEvaluationEnvironment?): ResultWithDiagnostics } 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 8d37d2740c5..7010a1d84df 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptConfiguration.kt @@ -23,11 +23,11 @@ val ScriptCollectedDataKeys.foundFragments by PropertiesCollection.key ResultWithDiagnostics +typealias RefineScriptCompilationConfigurationHandler = (ScriptDataFacade) -> ResultWithDiagnostics // to make it "hasheable" for cashing class RefineConfigurationBeforeParsingData( 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 8cb6a453f4d..92cb8f84fd4 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptDefinition.kt @@ -10,65 +10,67 @@ package kotlin.script.experimental.api import kotlin.reflect.KClass import kotlin.script.experimental.util.PropertiesCollection -interface ScriptDefinitionKeys +interface ScriptCompilationConfigurationKeys -open class ScriptDefinition(baseDefinitions: Iterable, body: Builder.() -> Unit) : - PropertiesCollection(Builder(baseDefinitions).apply(body).data) { +open class ScriptCompilationConfiguration(baseConfigurations: Iterable, body: Builder.() -> Unit) : + PropertiesCollection(Builder(baseConfigurations).apply(body).data) { constructor(body: Builder.() -> Unit = {}) : this(emptyList(), body) - constructor(vararg baseDefinitions: ScriptDefinition, body: Builder.() -> Unit = {}) : this(baseDefinitions.asIterable(), body) + constructor( + vararg baseConfigurations: ScriptCompilationConfiguration, body: Builder.() -> Unit = {} + ) : this(baseConfigurations.asIterable(), body) - class Builder internal constructor(baseDefinitions: Iterable) : - ScriptDefinitionKeys, - PropertiesCollection.Builder(baseDefinitions) + class Builder internal constructor(baseConfigurations: Iterable) : + ScriptCompilationConfigurationKeys, + PropertiesCollection.Builder(baseConfigurations) - // inherited from script definition for using as a keys anchor - companion object : ScriptDefinitionKeys + // inherited from script compilationConfiguration for using as a keys anchor + companion object : ScriptCompilationConfigurationKeys - object Default : ScriptDefinition() + object Default : ScriptCompilationConfiguration() } -val ScriptDefinitionKeys.displayName by PropertiesCollection.key("Kotlin script") // Name of the script type +val ScriptCompilationConfigurationKeys.displayName by PropertiesCollection.key("Kotlin script") // Name of the script type -val ScriptDefinitionKeys.fileExtension by PropertiesCollection.key("kts") // file extension +val ScriptCompilationConfigurationKeys.fileExtension by PropertiesCollection.key("kts") // file extension -val ScriptDefinitionKeys.baseClass by PropertiesCollection.key() // script base class +val ScriptCompilationConfigurationKeys.baseClass by PropertiesCollection.key() // script base class -val ScriptDefinitionKeys.scriptBodyTarget by PropertiesCollection.key(ScriptBodyTarget.Constructor) +val ScriptCompilationConfigurationKeys.scriptBodyTarget by PropertiesCollection.key(ScriptBodyTarget.Constructor) -val ScriptDefinitionKeys.implicitReceivers by PropertiesCollection.key>() // in the order from outer to inner scope +val ScriptCompilationConfigurationKeys.implicitReceivers by PropertiesCollection.key>() // in the order from outer to inner scope -val ScriptDefinitionKeys.providedProperties by PropertiesCollection.key>() // external variables +val ScriptCompilationConfigurationKeys.providedProperties by PropertiesCollection.key>() // external variables -val ScriptDefinitionKeys.defaultImports by PropertiesCollection.key>() +val ScriptCompilationConfigurationKeys.defaultImports by PropertiesCollection.key>() -val ScriptDefinitionKeys.dependencies by PropertiesCollection.key>() +val ScriptCompilationConfigurationKeys.dependencies by PropertiesCollection.key>() -val ScriptDefinitionKeys.copyAnnotationsFrom by PropertiesCollection.key>() +val ScriptCompilationConfigurationKeys.copyAnnotationsFrom by PropertiesCollection.key>() -val ScriptDefinitionKeys.compilerOptions by PropertiesCollection.key>() // Q: CommonCompilerOptions instead? +val ScriptCompilationConfigurationKeys.compilerOptions by PropertiesCollection.key>() // Q: CommonCompilerOptions instead? -val ScriptDefinitionKeys.refineConfigurationBeforeParsing by PropertiesCollection.key() +val ScriptCompilationConfigurationKeys.refineConfigurationBeforeParsing by PropertiesCollection.key() -val ScriptDefinitionKeys.refineConfigurationOnAnnotations by PropertiesCollection.key() +val ScriptCompilationConfigurationKeys.refineConfigurationOnAnnotations by PropertiesCollection.key() -val ScriptDefinitionKeys.refineConfigurationOnSections by PropertiesCollection.key() +val ScriptCompilationConfigurationKeys.refineConfigurationOnSections by PropertiesCollection.key() -val ScriptDefinitionKeys.sourceFragments by PropertiesCollection.key>() +val ScriptCompilationConfigurationKeys.sourceFragments by PropertiesCollection.key>() // DSL: -val ScriptDefinition.Builder.refineConfiguration get() = RefineConfigurationBuilder() +val ScriptCompilationConfiguration.Builder.refineConfiguration get() = RefineConfigurationBuilder() class RefineConfigurationBuilder : PropertiesCollection.Builder() { fun beforeParsing(handler: RefineScriptCompilationConfigurationHandler) { - set(ScriptDefinition.refineConfigurationBeforeParsing, RefineConfigurationBeforeParsingData(handler)) + set(ScriptCompilationConfiguration.refineConfigurationBeforeParsing, RefineConfigurationBeforeParsingData(handler)) } fun onAnnotations(annotations: List, handler: RefineScriptCompilationConfigurationHandler) { - set(ScriptDefinition.refineConfigurationOnAnnotations, RefineConfigurationOnAnnotationsData(annotations, handler)) + set(ScriptCompilationConfiguration.refineConfigurationOnAnnotations, RefineConfigurationOnAnnotationsData(annotations, handler)) } fun onAnnotations(vararg annotations: KotlinType, handler: RefineScriptCompilationConfigurationHandler) { @@ -88,7 +90,7 @@ class RefineConfigurationBuilder : PropertiesCollection.Builder() { } fun onSections(sections: List, handler: RefineScriptCompilationConfigurationHandler) { - set(ScriptDefinition.refineConfigurationOnSections, RefineConfigurationOnSectionsData(sections, handler)) + set(ScriptCompilationConfiguration.refineConfigurationOnSections, RefineConfigurationOnSectionsData(sections, handler)) } fun onSections(vararg sections: String, handler: RefineScriptCompilationConfigurationHandler) { 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 52bf3eeb403..4cdefff459e 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/scriptEvaluation.kt @@ -20,7 +20,7 @@ class ScriptEvaluationEnvironment(baseEvaluationEnvironments: Iterable) : - ScriptDefinitionKeys, + ScriptCompilationConfigurationKeys, PropertiesCollection.Builder(baseEvaluationEnvironments) companion object : ScriptEvaluationEnvironmentKeys diff --git a/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt b/libraries/scripting/common/src/kotlin/script/experimental/configuration/definitionFromAnnotation.kt similarity index 73% rename from libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt rename to libraries/scripting/common/src/kotlin/script/experimental/configuration/definitionFromAnnotation.kt index 8c073a69c74..acf2e9065dc 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/configuration/definitionFromAnnotation.kt @@ -1,9 +1,9 @@ /* - * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ -package kotlin.script.experimental.definitions +package kotlin.script.experimental.configuration import kotlin.reflect.KClass import kotlin.script.experimental.annotations.KotlinScript @@ -14,14 +14,14 @@ import kotlin.script.experimental.api.* private const val ERROR_MSG_PREFIX = "Unable to construct script definition: " private const val ILLEGAL_CONFIG_ANN_ARG = - "Illegal argument to KotlinScriptDefaultCompilationConfiguration annotation: expecting List-derived object or default-constructed class of configuration parameters" + "Illegal argument compilationConfiguration of the KotlinScript annotation: expecting an object or default-constructed class derived from ScriptCompilationConfiguration" -fun createScriptDefinitionFromAnnotatedBaseClass( +fun createScriptCompilationConfigurationFromAnnotatedBaseClass( baseClassType: KotlinType, environment: ScriptingEnvironment, - contextClass: KClass<*> = ScriptDefinition::class, - body: ScriptDefinition.Builder.() -> Unit = {} -): ScriptDefinition { + contextClass: KClass<*> = ScriptCompilationConfiguration::class, + body: ScriptCompilationConfiguration.Builder.() -> Unit = {} +): ScriptCompilationConfiguration { val getScriptingClass = environment[ScriptingEnvironment.getScriptingClass] ?: throw IllegalArgumentException("${ERROR_MSG_PREFIX}Expecting 'getScriptingClass' parameter in the scripting environment") @@ -37,21 +37,21 @@ fun createScriptDefinitionFromAnnotatedBaseClass( val mainAnnotation = baseClass.findAnnotation() ?: throw IllegalArgumentException("${ERROR_MSG_PREFIX}Expecting KotlinScript annotation on the $baseClass") - fun scriptingPropsInstance(kclass: KClass): ScriptDefinition = try { + fun scriptingPropsInstance(kclass: KClass): ScriptCompilationConfiguration = try { kclass.objectInstance ?: kclass.createInstance() } catch (e: Throwable) { throw IllegalArgumentException(ILLEGAL_CONFIG_ANN_ARG, e) } - return ScriptDefinition { + return ScriptCompilationConfiguration { baseClass(loadedBaseClassType) fileExtension(baseClass.findAnnotation()?.extension ?: mainAnnotation.extension) displayName(mainAnnotation.name) - include(scriptingPropsInstance(mainAnnotation.definition)) + include(scriptingPropsInstance(mainAnnotation.compilationConfiguration)) baseClass.java.annotations.filterIsInstance(KotlinScriptProperties::class.java).forEach { ann -> - include(scriptingPropsInstance(ann.definition)) + include(scriptingPropsInstance(ann.compilationConfiguration)) } body() } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt b/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt index 01bc853fea8..7dee7bb616d 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt @@ -30,11 +30,11 @@ abstract class BasicScriptingHost( open fun eval( script: ScriptSource, - scriptDefinition: ScriptDefinition, + scriptCompilationConfiguration: ScriptCompilationConfiguration, environment: ScriptEvaluationEnvironment? ): ResultWithDiagnostics = runInCoroutineContext { - compiler(script, scriptDefinition).onSuccess { + compiler(script, scriptCompilationConfiguration).onSuccess { evaluator(it, environment) } } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/host/scriptHostUtil.kt b/libraries/scripting/common/src/kotlin/script/experimental/host/scriptHostUtil.kt index cf1e193040e..13cde9f8ed6 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/host/scriptHostUtil.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/host/scriptHostUtil.kt @@ -16,9 +16,9 @@ fun ScriptSource.getScriptText(): String = when { else -> throw RuntimeException("unable to get text from null script") } -fun getMergedScriptText(script: ScriptSource, configuration: ScriptDefinition?): String { +fun getMergedScriptText(script: ScriptSource, configuration: ScriptCompilationConfiguration?): String { val originalScriptText = script.getScriptText() - val sourceFragments = configuration?.get(ScriptDefinition.sourceFragments) + val sourceFragments = configuration?.get(ScriptCompilationConfiguration.sourceFragments) return if (sourceFragments == null || sourceFragments.isEmpty()) { originalScriptText } else { diff --git a/libraries/scripting/common/src/kotlin/script/experimental/repl/replCompilation.kt b/libraries/scripting/common/src/kotlin/script/experimental/repl/replCompilation.kt index 7f41131ecd0..206138964e1 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/repl/replCompilation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/repl/replCompilation.kt @@ -12,7 +12,7 @@ interface ReplSnippetChecker { suspend operator fun invoke( snippet: ReplSnippetSource, state: ReplStageState<*>, - scriptDefinition: ScriptDefinition + compilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics } @@ -21,7 +21,7 @@ interface ReplSnippetCompiler { suspend operator fun invoke( snippet: ReplSnippetSource, state: ReplStageState<*>, - scriptDefinition: ScriptDefinition + compilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/repl/replHost.kt b/libraries/scripting/common/src/kotlin/script/experimental/repl/replHost.kt index 08d4c681a5d..49c7134f8ab 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/repl/replHost.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/repl/replHost.kt @@ -9,7 +9,7 @@ import kotlinx.coroutines.experimental.CoroutineScope import kotlinx.coroutines.experimental.runBlocking import kotlin.script.experimental.api.EvaluationResult import kotlin.script.experimental.api.ResultWithDiagnostics -import kotlin.script.experimental.api.ScriptDefinition +import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.util.PropertiesCollection interface ReplCommandProcessor { @@ -51,7 +51,7 @@ abstract class ReplHost( abstract fun eval( snippet: ReplSnippetSource, state: ReplStageState<*>, - scriptDefinition: ScriptDefinition, + scriptCompilationConfiguration: ScriptCompilationConfiguration, replEvaluationEnvironment: ReplEvaluationEnvironment ): ResultWithDiagnostics } diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt index 2e5daaf3281..43b6fd02f10 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt @@ -6,10 +6,10 @@ package kotlin.script.experimental.jvmhost import kotlin.script.experimental.api.KotlinType -import kotlin.script.experimental.api.ScriptDefinition +import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.ScriptEvaluator import kotlin.script.experimental.api.ScriptingEnvironment -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.configuration.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.host.BasicScriptingHost import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment @@ -20,7 +20,12 @@ open class BasicJvmScriptingHost( ) : BasicScriptingHost(compiler, evaluator) -inline fun createBasicScriptDefinitionFromAnnotatedBaseClass( +inline fun createBasicScriptCompilationConfigurationFromAnnotatedBaseClass( hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment, - noinline body: ScriptDefinition.Builder.() -> Unit = {} -): ScriptDefinition = createScriptDefinitionFromAnnotatedBaseClass(KotlinType(T::class), hostEnvironment, ScriptDefinition::class, body) + noinline body: ScriptCompilationConfiguration.Builder.() -> Unit = {} +): ScriptCompilationConfiguration = createScriptCompilationConfigurationFromAnnotatedBaseClass( + KotlinType(T::class), + hostEnvironment, + ScriptCompilationConfiguration::class, + body +) diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt index 77ad35fe7be..422bec3eaa5 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/KJVMCompilerImpl.kt @@ -50,7 +50,7 @@ import kotlin.script.experimental.util.getFirstFromChainOrNull import kotlin.script.experimental.util.getOrError class KJvmCompiledScript( - override val definition: ScriptDefinition, + override val compilationConfiguration: ScriptCompilationConfiguration, private val generationState: GenerationState, private val scriptClassFQName: String ) : CompiledScript { @@ -58,7 +58,7 @@ class KJvmCompiledScript( override suspend fun instantiate(scriptEvaluationEnvironment: ScriptEvaluationEnvironment?): ResultWithDiagnostics = try { val baseClassLoader = scriptEvaluationEnvironment?.get(JvmScriptEvaluationEnvironment.baseClassLoader) ?: Thread.currentThread().contextClassLoader - val dependencies = definition[ScriptDefinition.dependencies] + val dependencies = compilationConfiguration[ScriptCompilationConfiguration.dependencies] ?.flatMap { (it as? JvmDependency)?.classpath?.map { it.toURI().toURL() } ?: emptyList() } // TODO: previous dependencies and classloaders should be taken into account here val classLoaderWithDeps = @@ -78,7 +78,7 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler override fun compile( script: ScriptSource, - scriptDefinition: ScriptDefinition + scriptCompilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> { val messageCollector = ScriptDiagnosticsMessageCollector() @@ -89,12 +89,12 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler setIdeaIoUseFallback() var environment: KotlinCoreEnvironment? = null - var updatedDefinition = scriptDefinition + var updatedConfiguration = scriptCompilationConfiguration fun updateClasspath(classpath: List) { environment!!.updateClasspath(classpath.map(::JvmClasspathRoot)) if (classpath.isNotEmpty()) { - updatedDefinition = ScriptDefinition(updatedDefinition) { + updatedConfiguration = ScriptCompilationConfiguration(updatedConfiguration) { dependencies.append(JvmDependency(classpath)) } } @@ -104,18 +104,18 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler val kotlinCompilerConfiguration = org.jetbrains.kotlin.config.CompilerConfiguration().apply { add( JVMConfigurationKeys.SCRIPT_DEFINITIONS, - BridgeScriptDefinition(scriptDefinition, hostEnvironment, ::updateClasspath) + BridgeScriptDefinition(scriptCompilationConfiguration, hostEnvironment, ::updateClasspath) ) put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector) put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true) var isModularJava = false - getFirstFromChainOrNull(ScriptDefinition.jvm.javaHome, updatedDefinition, hostEnvironment)?.let { + getFirstFromChainOrNull(ScriptCompilationConfiguration.jvm.javaHome, updatedConfiguration, hostEnvironment)?.let { put(JVMConfigurationKeys.JDK_HOME, it) isModularJava = CoreJrtFileSystem.isModularJdk(it) } - updatedDefinition[ScriptDefinition.dependencies]?.let { dependencies -> + updatedConfiguration[ScriptCompilationConfiguration.dependencies]?.let { dependencies -> addJvmClasspathRoots( dependencies.flatMap { (it as JvmDependency).classpath @@ -147,7 +147,7 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler val analyzerWithCompilerReport = AnalyzerWithCompilerReport(messageCollector, environment.configuration.languageVersionSettings) val psiFileFactory: PsiFileFactoryImpl = PsiFileFactory.getInstance(environment.project) as PsiFileFactoryImpl - val scriptText = getMergedScriptText(script, updatedDefinition) + val scriptText = getMergedScriptText(script, updatedConfiguration) val scriptFileName = "script" // TODO: extract from file/url if available val virtualFile = LightVirtualFile( "$scriptFileName${KotlinParserDefinition.STD_SCRIPT_EXT}", @@ -192,7 +192,7 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler org.jetbrains.kotlin.codegen.CompilationErrorHandler.THROW_EXCEPTION ) - val res = KJvmCompiledScript(updatedDefinition, generationState, scriptFileName.capitalize()) + val res = KJvmCompiledScript(updatedConfiguration, generationState, scriptFileName.capitalize()) return ResultWithDiagnostics.Success(res, messageCollector.diagnostics) } catch (ex: Throwable) { @@ -237,22 +237,22 @@ class ScriptDiagnosticsMessageCollector : MessageCollector { // A bridge to the current scripting internal class BridgeScriptDefinition( - scriptDefinition: ScriptDefinition, + scriptCompilationConfiguration: ScriptCompilationConfiguration, hostEnvironment: ScriptingEnvironment, updateClasspath: (List) -> Unit ) : KotlinScriptDefinition( hostEnvironment.getScriptingClass( - scriptDefinition.getOrError(ScriptDefinition.baseClass), + scriptCompilationConfiguration.getOrError(ScriptCompilationConfiguration.baseClass), BridgeScriptDefinition::class ) ) { override val acceptedAnnotations = run { val cl = this::class.java.classLoader - scriptDefinition[ScriptDefinition.refineConfigurationOnAnnotations]?.annotations + scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationOnAnnotations]?.annotations ?.map { (cl.loadClass(it.typeName) as Class).kotlin } ?: emptyList() } override val dependencyResolver: DependenciesResolver = - BridgeDependenciesResolver(scriptDefinition, updateClasspath) + BridgeDependenciesResolver(scriptCompilationConfiguration, updateClasspath) } 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 ffbe0af9cc3..51197ce15bf 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 @@ -13,16 +13,16 @@ import kotlin.script.experimental.jvmhost.impl.KJvmCompilerImpl import kotlin.script.experimental.jvmhost.impl.withDefaults interface CompiledJvmScriptsCache { - fun get(script: ScriptSource, scriptDefinition: ScriptDefinition): CompiledScript<*>? - fun store(compiledScript: CompiledScript<*>, scriptDefinition: ScriptDefinition) + fun get(script: ScriptSource, scriptCompilationConfiguration: ScriptCompilationConfiguration): CompiledScript<*>? + fun store(compiledScript: CompiledScript<*>, scriptCompilationConfiguration: ScriptCompilationConfiguration) object NoCache : CompiledJvmScriptsCache { override fun get( - script: ScriptSource, scriptDefinition: ScriptDefinition + script: ScriptSource, scriptCompilationConfiguration: ScriptCompilationConfiguration ): CompiledScript<*>? = null override fun store( - compiledScript: CompiledScript<*>, scriptDefinition: ScriptDefinition + compiledScript: CompiledScript<*>, scriptCompilationConfiguration: ScriptCompilationConfiguration ) { } } @@ -36,16 +36,16 @@ open class JvmScriptCompiler( override suspend operator fun invoke( script: ScriptSource, - scriptDefinition: ScriptDefinition + scriptCompilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> { - val refineConfigurationFn = scriptDefinition[ScriptDefinition.refineConfigurationBeforeParsing] + val refineConfigurationFn = scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationBeforeParsing] val refinedConfiguration = - refineConfigurationFn?.handler?.invoke(ScriptDataFacade(script, scriptDefinition))?.let { + refineConfigurationFn?.handler?.invoke(ScriptDataFacade(script, scriptCompilationConfiguration))?.let { when (it) { is ResultWithDiagnostics.Failure -> return it is ResultWithDiagnostics.Success -> it.value } - } ?: scriptDefinition + } ?: scriptCompilationConfiguration val cached = cache.get(script, refinedConfiguration) if (cached != null) return cached.asSuccess() @@ -61,7 +61,7 @@ open class JvmScriptCompiler( interface KJvmCompilerProxy { fun compile( script: ScriptSource, - scriptDefinition: ScriptDefinition + scriptCompilationConfiguration: ScriptCompilationConfiguration ): ResultWithDiagnostics> } diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/BridgeDependenciesResolver.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/BridgeDependenciesResolver.kt index a1d8f6e519a..f43cbed6510 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/BridgeDependenciesResolver.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/BridgeDependenciesResolver.kt @@ -20,7 +20,7 @@ import kotlin.script.experimental.jvm.compat.mapToLegacyScriptReportPosition import kotlin.script.experimental.jvm.compat.mapToLegacyScriptReportSeverity class BridgeDependenciesResolver( - val scriptDefinition: ScriptDefinition, + val scriptCompilationConfiguration: ScriptCompilationConfiguration, val onClasspathUpdated: (List) -> Unit = {} ) : AsyncDependenciesResolver { @@ -39,12 +39,12 @@ class BridgeDependenciesResolver( ) ) - val refineFn = scriptDefinition[ScriptDefinition.refineConfigurationOnAnnotations]?.handler + val refineFn = scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationOnAnnotations]?.handler val refinedConfiguration = if (refineFn == null) null else { val res = refineFn( - ScriptDataFacade(scriptContents.toScriptSource(), scriptDefinition, processedScriptData) + ScriptDataFacade(scriptContents.toScriptSource(), scriptCompilationConfiguration, processedScriptData) ) when (res) { is ResultWithDiagnostics.Failure -> @@ -56,11 +56,11 @@ class BridgeDependenciesResolver( } } - val newClasspath = refinedConfiguration?.get(ScriptDefinition.dependencies) + val newClasspath = refinedConfiguration?.get(ScriptCompilationConfiguration.dependencies) ?.flatMap { (it as JvmDependency).classpath } ?: emptyList() if (newClasspath.isNotEmpty()) { val oldClasspath = - scriptDefinition[ScriptDefinition.dependencies] + scriptCompilationConfiguration[ScriptCompilationConfiguration.dependencies] ?.flatMap { (it as JvmDependency).classpath } ?: emptyList() if (newClasspath != oldClasspath) { onClasspathUpdated(newClasspath) @@ -69,7 +69,7 @@ class BridgeDependenciesResolver( DependenciesResolver.ResolveResult.Success( ScriptDependencies( classpath = newClasspath, // TODO: maybe it should return only increment from the initial config - imports = scriptDefinition[ScriptDefinition.defaultImports]?.toList() ?: emptyList() + imports = scriptCompilationConfiguration[ScriptCompilationConfiguration.defaultImports]?.toList() ?: emptyList() ), diagnostics ) diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptDefinition.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptCompilation.kt similarity index 56% rename from libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptDefinition.kt rename to libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptCompilation.kt index 5fc764b614a..93425e7b071 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptDefinition.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptCompilation.kt @@ -15,31 +15,31 @@ data class JvmDependency(val classpath: List) : ScriptDependency { constructor(vararg classpathEntries: File) : this(classpathEntries.asList()) } -interface JvmScriptDefinitionKeys +interface JvmScriptCompilationConfigurationKeys -open class JvmScriptDefinitionBuilder : PropertiesCollection.Builder(), JvmScriptDefinitionKeys { - companion object : PropertiesCollection.Builder.BuilderExtension, JvmScriptDefinitionKeys { - override fun get() = JvmScriptDefinitionBuilder() +open class JvmScriptCompilationConfigurationBuilder : PropertiesCollection.Builder(), JvmScriptCompilationConfigurationKeys { + companion object : PropertiesCollection.Builder.BuilderExtension, JvmScriptCompilationConfigurationKeys { + override fun get() = JvmScriptCompilationConfigurationBuilder() } } -fun JvmScriptDefinitionBuilder.dependenciesFromCurrentContext(vararg libraries: String, wholeClasspath: Boolean = false) { +fun JvmScriptCompilationConfigurationBuilder.dependenciesFromCurrentContext(vararg libraries: String, wholeClasspath: Boolean = false) { dependenciesFromClassloader(*libraries, wholeClasspath = wholeClasspath) } -fun JvmScriptDefinitionBuilder.dependenciesFromClassloader( +fun JvmScriptCompilationConfigurationBuilder.dependenciesFromClassloader( vararg libraries: String, classLoader: ClassLoader = Thread.currentThread().contextClassLoader, wholeClasspath: Boolean = false ) { - ScriptDefinition.dependencies.append( + ScriptCompilationConfiguration.dependencies.append( JvmDependency(scriptCompilationClasspathFromContext(*libraries, classLoader = classLoader, wholeClasspath = wholeClasspath)) ) } -val JvmScriptDefinitionKeys.javaHome by PropertiesCollection.keyCopy(ScriptingEnvironment.jvm.javaHome) +val JvmScriptCompilationConfigurationKeys.javaHome by PropertiesCollection.keyCopy(ScriptingEnvironment.jvm.javaHome) @Suppress("unused") -val ScriptDefinitionKeys.jvm - get() = JvmScriptDefinitionBuilder +val ScriptCompilationConfigurationKeys.jvm + get() = JvmScriptCompilationConfigurationBuilder diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt index 41aa2eb68f8..001dad33638 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt +++ b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/KotlinScriptDefinitionAdapterFromNewAPI.kt @@ -23,20 +23,20 @@ import kotlin.script.experimental.util.getOrError // temporary trick with passing Any as a template and overwriting it below, TODO: fix after introducing new script definitions hierarchy abstract class KotlinScriptDefinitionAdapterFromNewAPIBase : KotlinScriptDefinition(Any::class) { - protected abstract val scriptDefinition: ScriptDefinition + protected abstract val scriptCompilationConfiguration: ScriptCompilationConfiguration protected abstract val hostEnvironment: ScriptingEnvironment abstract val scriptFileExtensionWithDot: String open val baseClass: KClass<*> by lazy(LazyThreadSafetyMode.PUBLICATION) { - getScriptingClass(scriptDefinition.getOrError(ScriptDefinition.baseClass)) + getScriptingClass(scriptCompilationConfiguration.getOrError(ScriptCompilationConfiguration.baseClass)) } override val template: KClass<*> get() = baseClass override val name: String - get() = scriptDefinition[ScriptDefinition.displayName] ?: "Kotlin Script" + get() = scriptCompilationConfiguration[ScriptCompilationConfiguration.displayName] ?: "Kotlin Script" override val fileType: LanguageFileType = KotlinFileType.INSTANCE @@ -52,28 +52,28 @@ abstract class KotlinScriptDefinitionAdapterFromNewAPIBase : KotlinScriptDefinit get() = emptyList() override val dependencyResolver: DependenciesResolver by lazy(LazyThreadSafetyMode.PUBLICATION) { - BridgeDependenciesResolver(scriptDefinition) + BridgeDependenciesResolver(scriptCompilationConfiguration) } override val acceptedAnnotations: List> by lazy(LazyThreadSafetyMode.PUBLICATION) { - scriptDefinition[ScriptDefinition.refineConfigurationOnAnnotations]?.annotations + scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationOnAnnotations]?.annotations .orEmpty() .map { getScriptingClass(it) as KClass } } override val implicitReceivers: List by lazy(LazyThreadSafetyMode.PUBLICATION) { - scriptDefinition[ScriptDefinition.implicitReceivers] + scriptCompilationConfiguration[ScriptCompilationConfiguration.implicitReceivers] .orEmpty() .map { getScriptingClass(it).starProjectedType } } override val environmentVariables: List> by lazy(LazyThreadSafetyMode.PUBLICATION) { - scriptDefinition[ScriptDefinition.providedProperties] + scriptCompilationConfiguration[ScriptCompilationConfiguration.providedProperties] ?.map { (k, v) -> k to getScriptingClass(v).starProjectedType }.orEmpty() } override val additionalCompilerArguments: List - get() = scriptDefinition[ScriptDefinition.compilerOptions] + get() = scriptCompilationConfiguration[ScriptCompilationConfiguration.compilerOptions] .orEmpty() override val scriptExpectedLocations: List = @@ -97,12 +97,12 @@ abstract class KotlinScriptDefinitionAdapterFromNewAPIBase : KotlinScriptDefinit class KotlinScriptDefinitionAdapterFromNewAPI( - override val scriptDefinition: ScriptDefinition, + override val scriptCompilationConfiguration: ScriptCompilationConfiguration, override val hostEnvironment: ScriptingEnvironment ) : KotlinScriptDefinitionAdapterFromNewAPIBase() { - override val name: String get() = scriptDefinition[ScriptDefinition.displayName] ?: super.name + override val name: String get() = scriptCompilationConfiguration[ScriptCompilationConfiguration.displayName] ?: super.name override val scriptFileExtensionWithDot = - "." + (scriptDefinition[ScriptDefinition.fileExtension] ?: "kts") + "." + (scriptCompilationConfiguration[ScriptCompilationConfiguration.fileExtension] ?: "kts") } diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt index f801a308832..61bde89206d 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt +++ b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/LazyScriptDefinitionFromDiscoveredClass.kt @@ -16,7 +16,7 @@ import java.io.File import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.annotations.KotlinScriptFileExtension import kotlin.script.experimental.api.* -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.configuration.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.jvm.JvmDependency import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment @@ -41,13 +41,13 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor( } } - override val scriptDefinition: ScriptDefinition by lazy(LazyThreadSafetyMode.PUBLICATION) { + override val scriptCompilationConfiguration: ScriptCompilationConfiguration by lazy(LazyThreadSafetyMode.PUBLICATION) { messageCollector.report( CompilerMessageSeverity.LOGGING, "Configure scripting: loading script definition class $className using classpath $classpath\n. ${Thread.currentThread().stackTrace}" ) try { - createScriptDefinitionFromAnnotatedBaseClass( + createScriptCompilationConfigurationFromAnnotatedBaseClass( KotlinType(className), hostEnvironment, LazyScriptDefinitionFromDiscoveredClass::class @@ -70,8 +70,8 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor( ?: annotationsFromAsm.find { it.name == KotlinScript::class.simpleName }?.args )?.find { it.name == "extension" }?.value val ext = extFromAnn - ?: scriptDefinition.let { - it[ScriptDefinition.fileExtension] ?: "kts" + ?: scriptCompilationConfiguration.let { + it[ScriptCompilationConfiguration.fileExtension] ?: "kts" } ".$ext" } @@ -82,4 +82,4 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor( } } -val InvalidScriptDefinition = ScriptDefinition() +val InvalidScriptDefinition = ScriptCompilationConfiguration() diff --git a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt index 1dec6015c6f..c41cd094462 100644 --- a/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt +++ b/plugins/scripting/scripting-cli/src/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptiDefinitionsFromClasspathDiscoverySource.kt @@ -18,7 +18,7 @@ import java.util.jar.JarFile import kotlin.coroutines.experimental.buildSequence import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.KotlinType -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.configuration.createScriptCompilationConfigurationFromAnnotatedBaseClass import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment import kotlin.script.templates.ScriptTemplateDefinition @@ -274,7 +274,7 @@ private fun loadScriptDefinition( if (cls.annotations.firstIsInstanceOrNull() != null) { val environment = defaultJvmScriptingEnvironment KotlinScriptDefinitionAdapterFromNewAPI( - createScriptDefinitionFromAnnotatedBaseClass( + createScriptCompilationConfigurationFromAnnotatedBaseClass( KotlinType(cls.kotlin), environment, KotlinScriptDefinition::class