Remove redundant direct usages of the ScriptDefinition in compiler

plus some refactoring around definition extraction
This commit is contained in:
Ilya Chernikov
2019-02-13 17:57:28 +01:00
parent 5bc262fcb4
commit d1a1594f26
7 changed files with 48 additions and 47 deletions
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
import org.jetbrains.kotlin.idea.util.isKotlinBinary
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
import org.jetbrains.kotlin.script.scriptDefinitionByFileName
import org.jetbrains.kotlin.utils.addIfNotNull
import org.jetbrains.kotlin.utils.sure
import org.jetbrains.kotlin.utils.yieldIfNotNull
@@ -172,8 +173,9 @@ private fun <T> PsiElement.collectInfos(c: ModuleInfoCollector<T>): T {
getModuleRelatedModuleInfo(project, virtualFile)?.let {
return c.onResult(it)
}
containingKtFile.script?.kotlinScriptDefinition?.let {
return c.onResult(ScriptModuleInfo(project, virtualFile, it))
containingKtFile.script?.let {
val definition = scriptDefinitionByFileName(project, containingKtFile.name)
return c.onResult(ScriptModuleInfo(project, virtualFile, definition))
}
}
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
import org.jetbrains.kotlin.resolve.TargetPlatform;
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform;
import org.jetbrains.kotlin.script.KotlinScriptDefinition;
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProviderKt;
import static org.jetbrains.kotlin.script.KotlinScriptDefinitionProviderKt.findScriptDefinition;
@@ -61,7 +62,7 @@ public class TargetPlatformDetector {
}
if (file.isScript()) {
KotlinScriptDefinition scriptDefinition = findScriptDefinition(file);
KotlinScriptDefinition scriptDefinition = KotlinScriptDefinitionProviderKt.scriptDefinition(file);
if (scriptDefinition != null) {
String platformNameFromScriptDefinition = scriptDefinition.getPlatform();
for (IdePlatform platform : IdePlatformKind.Companion.getAll_PLATFORMS()) {