Check that file is in common module sources before enlarging its scope

This is needed for build.gradle.kts files that are in module content, but not is source
This commit is contained in:
Natalia Selezneva
2019-05-31 15:16:29 +03:00
parent b650c7ab00
commit 8d6bbb9e2e
@@ -15,7 +15,9 @@ import com.intellij.psi.ResolveScopeEnlarger
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.SearchScope import com.intellij.psi.search.SearchScope
import org.jetbrains.kotlin.idea.caches.project.implementingModules import org.jetbrains.kotlin.idea.caches.project.implementingModules
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
import org.jetbrains.kotlin.idea.project.platform import org.jetbrains.kotlin.idea.project.platform
import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.platform.isCommon
import org.jetbrains.kotlin.platform.jvm.isJvm import org.jetbrains.kotlin.platform.jvm.isJvm
@@ -24,6 +26,11 @@ class CommonModuleResolveScopeEnlarger : ResolveScopeEnlarger() {
val module = ProjectFileIndex.getInstance(project).getModuleForFile(file) ?: return null val module = ProjectFileIndex.getInstance(project).getModuleForFile(file) ?: return null
if (!module.platform.isCommon()) return null if (!module.platform.isCommon()) return null
val moduleFileIndex = ModuleRootManager.getInstance(module).fileIndex
if (!moduleFileIndex.isInSourceContentWithoutInjected(file) && !moduleFileIndex.isInTestSourceContentKotlinAware(file)) {
return null
}
val implementingModule = module.implementingModules.find { it.platform.isJvm() } ?: return null val implementingModule = module.implementingModules.find { it.platform.isJvm() } ?: return null
var result = GlobalSearchScope.EMPTY_SCOPE var result = GlobalSearchScope.EMPTY_SCOPE