Implement support for additional receivers for script in frontend

This commit is contained in:
Ilya Chernikov
2018-03-07 11:23:08 +01:00
parent e79d3dd035
commit 87de1dff03
3 changed files with 47 additions and 1 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.name.NameUtils
import org.jetbrains.kotlin.psi.KtScript
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import kotlin.reflect.KClass
import kotlin.reflect.KType
import kotlin.script.experimental.api.ScriptCompileConfigurationParams
import kotlin.script.experimental.api.ScriptDefinition
import kotlin.script.experimental.api.resultOrNull
@@ -47,6 +48,13 @@ class KotlinScriptDefinitionAdapterFromNewAPI(val scriptDefinition: ScriptDefini
}.resultOrNull()?.getOrNull(ScriptCompileConfigurationParams.updateConfigurationOnAnnotations)?.toList()
?: emptyList()
}
override val implicitReceivers: List<KType> by lazy {
runBlocking {
scriptDefinition.configurator.baseConfiguration(null)
}.resultOrNull()?.getOrNull(ScriptCompileConfigurationParams.scriptSignature)?.providedDeclarations?.implicitReceivers
?: emptyList()
}
}