diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt index 6180f5e1fd5..66ddca08ad2 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.caches.project import com.intellij.ide.scratch.ScratchFileService +import com.intellij.ide.scratch.ScratchRootType import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project import com.intellij.openapi.roots.* @@ -80,12 +81,11 @@ fun getScriptRelatedModuleInfo(project: Project, virtualFile: VirtualFile): Modu return moduleRelatedModuleInfo } - if (ScratchFileService.isInScratchRoot(virtualFile)) { + return if (ScratchFileService.findRootType(virtualFile) != ScratchRootType.getInstance()) null + else { val scratchModule = virtualFile.scriptRelatedModuleName?.let { ModuleManager.getInstance(project).findModuleByName(it) } - return scratchModule?.testSourceInfo() ?: scratchModule?.productionSourceInfo() + scratchModule?.testSourceInfo() ?: scratchModule?.productionSourceInfo() } - - return null } private typealias VirtualFileProcessor = (Project, VirtualFile, Boolean) -> T diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchAdditionalIdeaDependenciesProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchAdditionalIdeaDependenciesProvider.kt index 40e4aea0d63..e4dd35195e9 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchAdditionalIdeaDependenciesProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchAdditionalIdeaDependenciesProvider.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.idea.scratch import com.intellij.ide.scratch.ScratchFileService +import com.intellij.ide.scratch.ScratchRootType import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull class ScratchAdditionalIdeaDependenciesProvider : ScriptAdditionalIdeaDependenciesProvider() { override fun getRelatedModules(file: VirtualFile, project: Project): List { - if (!ScratchFileService.isInScratchRoot(file)) return emptyList() + if (!isInScratchRoot(file)) return emptyList() val scratchModule = file.scriptRelatedModuleName?.let { ModuleManager.getInstance(project).findModuleByName(it) @@ -37,7 +38,7 @@ class ScratchAdditionalIdeaDependenciesProvider : ScriptAdditionalIdeaDependenci } override fun getRelatedLibraries(file: VirtualFile, project: Project): List { - if (!ScratchFileService.isInScratchRoot(file)) return emptyList() + if (!isInScratchRoot(file)) return emptyList() val result = linkedSetOf() getRelatedModules(file, project).forEach { @@ -51,6 +52,8 @@ class ScratchAdditionalIdeaDependenciesProvider : ScriptAdditionalIdeaDependenci return result.toList() } + private inline fun isInScratchRoot(file: VirtualFile) = ScratchFileService.findRootType(file) == ScratchRootType.getInstance() + private fun moduleDependencyEnumerator(it: Module): OrderEnumerator { return ModuleRootManager.getInstance(it).orderEntries() .compileOnly().withoutSdk().recursively().exportedOnly()