diff --git a/compiler/frontend.script/src/META-INF/services/org.jetbrains.kotlin.script.ScriptHelper b/compiler/frontend.script/src/META-INF/services/org.jetbrains.kotlin.script.ScriptHelper new file mode 100644 index 00000000000..46ba58a3987 --- /dev/null +++ b/compiler/frontend.script/src/META-INF/services/org.jetbrains.kotlin.script.ScriptHelper @@ -0,0 +1 @@ +org.jetbrains.kotlin.script.ScriptHelperImpl diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt index c8ab86e7591..53119624c72 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptClassMemberScope.kt @@ -49,7 +49,7 @@ class LazyScriptClassMemberScope( } private fun createScriptParameters(constructor: ClassConstructorDescriptorImpl): List { - return ScriptHelper.getInstance()!!.getScriptParameters(scriptDescriptor.scriptDefinition, scriptDescriptor).mapIndexed { index, (name, type) -> + return ScriptHelper.getInstance().getScriptParameters(scriptDescriptor.scriptDefinition, scriptDescriptor).mapIndexed { index, (name, type) -> ValueParameterDescriptorImpl( constructor, null, index, Annotations.EMPTY, name, type, /* declaresDefaultValue = */ false, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt index dec8828688b..808e5c6b169 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyScriptDescriptor.kt @@ -80,5 +80,5 @@ class LazyScriptDescriptor( override fun getUnsubstitutedPrimaryConstructor() = super.getUnsubstitutedPrimaryConstructor()!! - override fun computeSupertypes() = listOf(ScriptHelper.getInstance()!!.getKotlinType(this, scriptDefinition.template)).ifEmpty { listOf(builtIns.anyType) } + override fun computeSupertypes() = listOf(ScriptHelper.getInstance().getKotlinType(this, scriptDefinition.template)).ifEmpty { listOf(builtIns.anyType) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptHelper.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptHelper.kt index 4b7876e07c7..657dbb96487 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptHelper.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptHelper.kt @@ -16,10 +16,10 @@ package org.jetbrains.kotlin.script -import com.intellij.openapi.extensions.ExtensionPointName import org.jetbrains.kotlin.descriptors.ScriptDescriptor import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.KotlinType +import java.util.* import kotlin.reflect.KClass data class ScriptParameter(val name: Name, val type: KotlinType) @@ -29,8 +29,10 @@ interface ScriptHelper { fun getKotlinType(scriptDescriptor: ScriptDescriptor, kClass: KClass): KotlinType companion object { - private val EP_NAME = ExtensionPointName.create("org.jetbrains.kotlin.scriptHelper") + private val scriptHelperInstance: ScriptHelper = + ServiceLoader.load(ScriptHelper::class.java, ScriptHelper::class.java.classLoader).firstOrNull() + ?: error("ScriptHelper implementation is not found") - fun getInstance(): ScriptHelper? = EP_NAME.extensions.firstOrNull() + fun getInstance(): ScriptHelper = scriptHelperInstance } } diff --git a/idea/src/META-INF/extensions/common.xml b/idea/src/META-INF/extensions/common.xml index 06e8db2228d..c26a7b5aab8 100644 --- a/idea/src/META-INF/extensions/common.xml +++ b/idea/src/META-INF/extensions/common.xml @@ -41,8 +41,6 @@ interface="org.jetbrains.kotlin.idea.facet.KotlinVersionInfoProvider"/> - org.jetbrains.kotlin -