From e50d643213c9d03620db522450f6ab502982b53f Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Tue, 20 Apr 2021 17:42:55 +0500 Subject: [PATCH] Add possibility to use `ModuleLibrariesSearchScope` in other modules The type is made private to avoid direct usage of it --- .../idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt | 4 ++-- .../fir/low/level/api/util/ModuleLibrariesSearchScope.kt | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt index 3094befddcb..7ec47c0cb52 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt @@ -44,8 +44,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.providers.FirIdeLibrariesSess import org.jetbrains.kotlin.idea.fir.low.level.api.providers.FirIdeProvider import org.jetbrains.kotlin.idea.fir.low.level.api.providers.FirModuleWithDependenciesSymbolProvider import org.jetbrains.kotlin.idea.fir.low.level.api.providers.FirThreadSafeSymbolProviderWrapper -import org.jetbrains.kotlin.idea.fir.low.level.api.util.ModuleLibrariesSearchScope import org.jetbrains.kotlin.idea.fir.low.level.api.util.checkCanceled +import org.jetbrains.kotlin.idea.fir.low.level.api.util.createScopeForModuleLibraries import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.load.java.JavaClassFinderImpl import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory @@ -161,7 +161,7 @@ internal object FirIdeSessionFactory { configureSession: (FirIdeSession.() -> Unit)?, ): FirIdeLibrariesSession = librariesCache.cached(moduleInfo) { checkCanceled() - val searchScope = ModuleLibrariesSearchScope(moduleInfo.module) + val searchScope = createScopeForModuleLibraries(moduleInfo.module) val javaClassFinder = JavaClassFinderImpl().apply { setProjectInstance(project) setScope(searchScope) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/ModuleLibrariesSearchScope.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/ModuleLibrariesSearchScope.kt index 081eafc8f12..aca145b5436 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/ModuleLibrariesSearchScope.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/ModuleLibrariesSearchScope.kt @@ -13,7 +13,7 @@ import com.intellij.openapi.util.Comparing import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.GlobalSearchScope -internal class ModuleLibrariesSearchScope(private val module: Module) : GlobalSearchScope(module.project) { +private class ModuleLibrariesSearchScope(private val module: Module) : GlobalSearchScope(module.project) { override fun contains(file: VirtualFile): Boolean { val orderEntry = ModuleRootManager.getInstance(module).fileIndex.getOrderEntryForFile(file) return orderEntry is JdkOrderEntry || orderEntry is LibraryOrderEntry @@ -27,4 +27,6 @@ internal class ModuleLibrariesSearchScope(private val module: Module) : GlobalSe override fun isSearchInModuleContent(aModule: Module): Boolean = false override fun isSearchInLibraries(): Boolean = true -} \ No newline at end of file +} + +fun createScopeForModuleLibraries(module: Module): GlobalSearchScope = ModuleLibrariesSearchScope(module) \ No newline at end of file