diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/moduleInfosFromIdeaModel.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/moduleInfosFromIdeaModel.kt index 8d854f5bdd4..bdf27d81031 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/moduleInfosFromIdeaModel.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/moduleInfosFromIdeaModel.kt @@ -19,12 +19,16 @@ import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.types.typeUtil.closure import java.util.concurrent.ConcurrentHashMap -fun getModuleInfosFromIdeaModel(project: Project, platform: TargetPlatform): List { +/** null-platform means that we should get all modules */ +fun getModuleInfosFromIdeaModel(project: Project, platform: TargetPlatform? = null): List { val modelInfosCache = project.cacheInvalidatingOnRootModifications { collectModuleInfosFromIdeaModel(project) } - return modelInfosCache.forPlatform(platform) + return if (platform != null) + modelInfosCache.forPlatform(platform) + else + modelInfosCache.allModules() } private class IdeaModelInfosCache( @@ -39,6 +43,8 @@ private class IdeaModelInfosCache( mergePlatformModules(moduleSourceInfos, platform) + libraryInfos + sdkInfos } } + + fun allModules(): List = moduleSourceInfos + libraryInfos + sdkInfos } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt index 177a8641f63..2bfb3e21765 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt @@ -116,7 +116,8 @@ internal class ProjectResolutionFacade( projectContext ) - val allModuleInfos = (allModules ?: getModuleInfosFromIdeaModel(project, settings.platform)).toMutableSet() + val allModuleInfos = (allModules ?: getModuleInfosFromIdeaModel(project, (settings as? PlatformAnalysisSettingsImpl)?.platform)) + .toMutableSet() val syntheticFilesByModule = syntheticFiles.groupBy(KtFile::getModuleInfo) val syntheticFilesModules = syntheticFilesByModule.keys @@ -166,7 +167,7 @@ internal class ProjectResolutionFacade( }, builtIns = builtIns, delegateResolver = delegateResolverForProject, - firstDependency = settings.sdk?.let { SdkInfo(project, it) }, + firstDependency = (settings as PlatformAnalysisSettingsImpl).sdk?.let { SdkInfo(project, it) }, packageOracleFactory = ServiceManager.getService(project, IdePackageOracleFactory::class.java), invalidateOnOOCB = invalidateOnOOCB, isReleaseCoroutines = settings.isReleaseCoroutines