Add support for script base class with parameters

including possibility to describe which script params to pass to superclass
This commit is contained in:
Ilya Chernikov
2016-05-31 17:05:45 +02:00
parent 3c1503564e
commit e1ca45f360
8 changed files with 94 additions and 27 deletions
@@ -38,7 +38,14 @@ class ReflectedParamClassTestScriptDefinition(extension: String, val name: Strin
listOf(makeReflectedClassScriptParameter(scriptDescriptor, Name.identifier(name), parameter))
}
class ReflectedSuperclassTestScriptDefinition(extension: String, parameters: List<ScriptParameter>, val superclass: KClass<out Any>) : SimpleParamsTestScriptDefinition(extension, parameters) {
override fun getScriptSuperclasses(scriptDescriptor: ScriptDescriptor): List<KotlinType> =
open class ReflectedSuperclassTestScriptDefinition(extension: String, parameters: List<ScriptParameter>, val superclass: KClass<out Any>) : SimpleParamsTestScriptDefinition(extension, parameters) {
override fun getScriptSupertypes(scriptDescriptor: ScriptDescriptor): List<KotlinType> =
listOf(getKotlinType(scriptDescriptor, superclass))
}
class ReflectedSuperclassWithParamsTestScriptDefinition(extension: String, parameters: List<ScriptParameter>, superclass: KClass<out Any>, val superclassParameters: List<ScriptParameter>)
: ReflectedSuperclassTestScriptDefinition(extension, parameters, superclass)
{
override fun getScriptParametersToPassToSuperclass(scriptDescriptor: ScriptDescriptor): List<Name> =
superclassParameters.map { it.name }
}