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.SearchScope
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.util.isInSourceContentWithoutInjected
import org.jetbrains.kotlin.platform.isCommon
import org.jetbrains.kotlin.platform.jvm.isJvm
@@ -24,6 +26,11 @@ class CommonModuleResolveScopeEnlarger : ResolveScopeEnlarger() {
val module = ProjectFileIndex.getInstance(project).getModuleForFile(file) ?: 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
var result = GlobalSearchScope.EMPTY_SCOPE