Replace dedicated configurator with definition properties + refine fun
This commit is contained in:
+3
-11
@@ -14,18 +14,10 @@ typealias ScriptCompileConfiguration = ChainedPropertyBag
|
||||
|
||||
typealias ProcessedScriptData = ChainedPropertyBag
|
||||
|
||||
|
||||
interface ScriptCompilationConfigurator {
|
||||
|
||||
// constructor(properties: ScriptDefinitionPropertiesBag) // the constructor is expected from implementations
|
||||
|
||||
val defaultConfiguration: ScriptCompileConfiguration
|
||||
|
||||
suspend fun refineConfiguration(
|
||||
interface RefineScriptCompilationConfiguration {
|
||||
suspend operator fun invoke(
|
||||
scriptSource: ScriptSource,
|
||||
configuration: ScriptCompileConfiguration,
|
||||
processedScriptData: ProcessedScriptData = ProcessedScriptData()
|
||||
): ResultWithDiagnostics<ScriptCompileConfiguration> =
|
||||
configuration.cloneWithNewParent(defaultConfiguration).asSuccess()
|
||||
): ResultWithDiagnostics<ScriptCompileConfiguration>
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -35,6 +35,8 @@ object ScriptCompileConfigurationProperties {
|
||||
|
||||
val compilerOptions by typedKey<List<String>>() // Q: CommonCompilerOptions instead?
|
||||
|
||||
val refineConfiguration by typedKey<RefineScriptCompilationConfiguration>() // dynamic configurator
|
||||
|
||||
val refineBeforeParsing by typedKey<Boolean>() // default: false
|
||||
|
||||
val refineConfigurationOnAnnotations by typedKey<List<KotlinType>>()
|
||||
|
||||
@@ -19,8 +19,6 @@ interface ScriptDefinition {
|
||||
|
||||
val properties: ScriptDefinitionPropertiesBag
|
||||
|
||||
val compilationConfigurator: ScriptCompilationConfigurator?
|
||||
|
||||
val evaluator: ScriptEvaluator<*>?
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ interface GetScriptingClass {
|
||||
|
||||
fun ScriptingEnvironment.getScriptingClass(type: KotlinType, contextClass: KClass<*>): KClass<*> {
|
||||
val getClass = getOrNull(ScriptingEnvironmentProperties.getScriptingClass)
|
||||
?: throw IllegalArgumentException("Expecting 'getScriptingClass' property in the scripting environment: unable to load scripting class $type")
|
||||
?: throw IllegalArgumentException("Expecting 'getScriptingClass' property in the scripting environment: unable to load scripting class $type")
|
||||
return getClass(type, contextClass, this)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user