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()) {
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.psi.NotNullableUserDataProperty
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.LegacyResolverWrapper
import org.jetbrains.kotlin.script.findScriptDefinition
import org.jetbrains.kotlin.script.scriptDefinition
import kotlin.script.experimental.dependencies.AsyncDependenciesResolver
import kotlin.script.experimental.dependencies.ScriptDependencies
@@ -95,7 +96,7 @@ class ScriptDependenciesUpdater(
if (ApplicationManager.getApplication().isUnitTestMode && ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled == true) return
val scriptDef = ktFile.script?.kotlinScriptDefinition ?: return
val scriptDef = ktFile.scriptDefinition() ?: return
if (!ProjectRootsUtil.isInProjectSource(ktFile, includeScriptsOutsideSourceRoots = true)) return
@@ -122,7 +123,7 @@ class ScriptDependenciesUpdater(
}
val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return
val scriptDef = ktFile.script?.kotlinScriptDefinition ?: return
val scriptDef = ktFile.scriptDefinition() ?: return
if (!ProjectRootsUtil.isInProjectSource(ktFile, includeScriptsOutsideSourceRoots = true)) return