I have strange script problem. I use `implicitRece...
# scripting
f
I have strange script problem. I use
implicitReceivers()
and trying to import another script using
@file:Import("..")
annotation. In
evalWithConfigAndOtherScriptsResults()
-- it's part of
kotlin.script.experimental.jvm.BasicJvmScriptEvaluator
there is next code:
Copy code
val ctor = java.constructors.single() // <-- generated constructor which expects (imported script result, implicit receiver)
val instance = ctor.newInstance(*args.toArray()) // <--- args here reversed, so (implicit receiver, imported script result)
did somebody meet this problem?
i
Are you using 1.3.41 or 1.3.50? Because I’ve fixed a problem with constructor parameters in 1.3.50, that could lead to this issue.
👍 1
f
i'm using 41, I'll try 50 when it will be released
@ilya.chernikov seems it doesn't work 😞
i
Could you, please file an issue in Kotlin’s YouTrack, and I’ll try to have a look at it as soon as possible
f
I'll create bug, but in few words: we have some script type with implicit receiver. We are trying to import one file from another one (f.e.
a.script.kts
and
b.script.kts
): `a.script.kts`:
Copy code
@file:Import("b.script.kts")

applyGoal()
`b.script.kts`:
Copy code
fun applyGoal() {
}
Copy code
object SomeScriptConfiguration : ScriptCompilationConfiguration({
    implicitReceivers(E2eBuilder::class)

    refineConfiguration {
        onAnnotations(DependsOn::class, Repository::class, Import::class, handler = AnnotationSupportScriptConfigurator())
    }

})
kotlin/script/experimental/jvm/BasicJvmScriptEvaluator.kt:91
here we've got
Copy code
Caused by: java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.evalWithConfigAndOtherScriptsResults(BasicJvmScriptEvaluator.kt:91)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke$suspendImpl(BasicJvmScriptEvaluator.kt:40)
	at kotlin.script.experimental.jvm.BasicJvmScriptEvaluator.invoke(BasicJvmScriptEvaluator.kt)
	at kotlin.script.experimental.host.BasicScriptingHost$eval$1.invokeSuspend(BasicScriptingHost.kt:47)
	at kotlin.script.experimental.host.BasicScriptingHost$eval$1.invoke(BasicScriptingHost.kt)
	at kotlin.script.experimental.host.BasicScriptingHost$runInCoroutineContext$1.invokeSuspend(BasicScriptingHost.kt:35)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.kt:116)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:76)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:53)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:35)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at kotlin.script.experimental.host.BasicScriptingHost.runInCoroutineContext(BasicScriptingHost.kt:35)
	at kotlin.script.experimental.host.BasicScriptingHost.eval(BasicScriptingHost.kt:45)
i
Thank you! I’ll try to have a look asap.
👍 1