Fix creating DependenciesResolver with default arguments
This commit is contained in:
+1
-1
@@ -83,7 +83,7 @@ open class KotlinScriptDefinitionFromAnnotatedTemplate(
|
||||
log.warn("[kts] ${resolverClass.qualifiedName} must have a constructor without parameters")
|
||||
return null
|
||||
}
|
||||
return constructorWithoutParameters.call()
|
||||
return constructorWithoutParameters.callBy(emptyMap())
|
||||
}
|
||||
catch (ex: ClassCastException) {
|
||||
log.warn("[kts] Script def error ${ex.message}")
|
||||
|
||||
@@ -278,6 +278,18 @@ class ScriptTemplateTest {
|
||||
Assert.assertNotNull(aClass)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSeveralConstructors() {
|
||||
val aClass = compileScript("fib.kts", ScriptWithSeveralConstructorsResolver::class, null)
|
||||
Assert.assertNotNull(aClass)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testConstructorWithDefaultArgs() {
|
||||
val aClass = compileScript("fib.kts", ScriptWithDefaultArgsResolver::class, null)
|
||||
Assert.assertNotNull(aClass)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSmokeScriptException() {
|
||||
val aClass = compileScript("smoke_exception.kts", ScriptWithArrayParam::class)
|
||||
@@ -493,6 +505,12 @@ class TestAcceptedAnnotationsLegacyResolver: ScriptDependenciesResolver, Accepte
|
||||
}
|
||||
}
|
||||
|
||||
class SeveralConstructorsResolver(val c: Int): TestKotlinScriptDependenciesResolver() {
|
||||
constructor(): this(0)
|
||||
|
||||
}
|
||||
class DefaultArgsConstructorResolver(val c: Int = 0): TestKotlinScriptDependenciesResolver()
|
||||
|
||||
@ScriptTemplateDefinition(
|
||||
scriptFilePattern =".*\\.kts",
|
||||
resolver = TestKotlinScriptDummyDependenciesResolver::class)
|
||||
@@ -559,6 +577,12 @@ abstract class ScriptWithAcceptedAnnotationsAsyncResolver
|
||||
@ScriptTemplateDefinition(resolver = TestAcceptedAnnotationsLegacyResolver::class)
|
||||
abstract class ScriptWithAcceptedAnnotationsLegacyResolver
|
||||
|
||||
@ScriptTemplateDefinition(resolver = SeveralConstructorsResolver::class)
|
||||
abstract class ScriptWithSeveralConstructorsResolver(val num: Int)
|
||||
|
||||
@ScriptTemplateDefinition(resolver = DefaultArgsConstructorResolver::class)
|
||||
abstract class ScriptWithDefaultArgsResolver(val num: Int)
|
||||
|
||||
@Target(AnnotationTarget.FILE)
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
annotation class DependsOn(val path: String)
|
||||
|
||||
Reference in New Issue
Block a user