FIR IDE: separate fir session for current module from dependent modules session

This commit is contained in:
Ilya Kirillov
2020-09-04 12:22:32 +03:00
parent ab897752de
commit 07be30c5db
14 changed files with 185 additions and 87 deletions
@@ -297,14 +297,14 @@ private fun Module.hasTestRoots() =
private fun Module.hasRootsOfType(sourceRootType: JpsModuleSourceRootType<*>): Boolean =
rootManager.contentEntries.any { it.getSourceFolders(sourceRootType).isNotEmpty() }
private abstract class ModuleSourceScope(val module: Module) : GlobalSearchScope(module.project) {
abstract class ModuleSourceScope(val module: Module) : GlobalSearchScope(module.project) {
override fun compare(file1: VirtualFile, file2: VirtualFile) = 0
override fun isSearchInModuleContent(aModule: Module) = aModule == module
override fun isSearchInLibraries() = false
}
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class ModuleProductionSourceScope(module: Module) : ModuleSourceScope(module) {
class ModuleProductionSourceScope(module: Module) : ModuleSourceScope(module) {
val moduleFileIndex = ModuleRootManager.getInstance(module).fileIndex
override fun equals(other: Any?): Boolean {