Add helpers, compilation function and tests for passing classes as a parameters to a script
This commit is contained in:
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.psi.KtFile;
|
||||
import org.jetbrains.kotlin.resolve.AnalyzingUtils;
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider;
|
||||
import org.jetbrains.kotlin.script.ScriptParameter;
|
||||
import org.jetbrains.kotlin.scripts.TestScriptDefinition;
|
||||
import org.jetbrains.kotlin.scripts.SimpleParamsTestScriptDefinition;
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||
import org.jetbrains.kotlin.types.KotlinType;
|
||||
import org.jetbrains.kotlin.types.Variance;
|
||||
@@ -163,7 +163,7 @@ public class CodegenTestFiles {
|
||||
|
||||
KotlinScriptDefinitionProvider definitionProvider = KotlinScriptDefinitionProvider.getInstance(project);
|
||||
definitionProvider.addScriptDefinition(
|
||||
new TestScriptDefinition(
|
||||
new SimpleParamsTestScriptDefinition(
|
||||
".kts",
|
||||
scriptParameterTypes
|
||||
)
|
||||
|
||||
+15
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -23,12 +23,20 @@ import org.jetbrains.kotlin.psi.KtScript
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.script.ScriptNameUtil
|
||||
import org.jetbrains.kotlin.script.ScriptParameter
|
||||
import org.jetbrains.kotlin.script.makeReflectedClassScriptParameter
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class TestScriptDefinition(
|
||||
val extension: String,
|
||||
val parameters: List<ScriptParameter>
|
||||
) : KotlinScriptDefinition {
|
||||
override fun getScriptParameters(scriptDescriptor: ScriptDescriptor) = parameters
|
||||
abstract class BaseScriptDefinition (val extension: String) : KotlinScriptDefinition {
|
||||
override fun isScript(file: PsiFile): Boolean = file.name.endsWith(extension)
|
||||
override fun getScriptName(script: KtScript): Name = ScriptNameUtil.fileNameWithExtensionStripped(script, extension)
|
||||
}
|
||||
}
|
||||
|
||||
class SimpleParamsTestScriptDefinition(extension: String, val parameters: List<ScriptParameter>) : BaseScriptDefinition(extension) {
|
||||
override fun getScriptParameters(scriptDescriptor: ScriptDescriptor) = parameters
|
||||
}
|
||||
|
||||
class ReflectedParamClassTestScriptDefinition(extension: String, val name: String, val parameter: KClass<out Any>) : BaseScriptDefinition(extension) {
|
||||
override fun getScriptParameters(scriptDescriptor: ScriptDescriptor) =
|
||||
listOf(makeReflectedClassScriptParameter(scriptDescriptor, Name.identifier(name), parameter))
|
||||
}
|
||||
Reference in New Issue
Block a user