diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/multiplatformUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/multiplatformUtil.kt index 3467f633659..27733e97fc6 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/multiplatformUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/multiplatformUtil.kt @@ -55,25 +55,41 @@ val Module.implementingModules: List get() = cacheInvalidatingOnRootModifications { val moduleManager = ModuleManager.getInstance(project) - if (isNewMPPModule) { - moduleManager.getModuleDependentModules(this).filter { + when (facetSettings?.mppVersion) { + null -> emptyList() + + KotlinMultiplatformVersion.M3 -> moduleManager.modules.filter { it.facetSettings?.dependsOnModuleNames?.contains(name) == true } + + KotlinMultiplatformVersion.M2 -> moduleManager.getModuleDependentModules(this).filter { it.isNewMPPModule && it.externalProjectId == externalProjectId } - } else { - moduleManager.modules.filter { name in it.findOldFashionedImplementedModuleNames() } + + KotlinMultiplatformVersion.M1 -> moduleManager.modules.filter { name in it.findOldFashionedImplementedModuleNames() } } } val Module.implementedModules: List get() = cacheInvalidatingOnRootModifications { - if (isNewMPPModule) { - rootManager.dependencies.filter { - // TODO: remove additional android check - it.isNewMPPModule && it.platform.isCommon() && it.externalProjectId == externalProjectId && (isAndroidModule() || it.isTestModule == isTestModule) + val facetSettings = facetSettings + when (facetSettings?.mppVersion) { + null -> emptyList() + + KotlinMultiplatformVersion.M3 -> { + val modelsProvider = IdeModelsProviderImpl(project) + facetSettings.dependsOnModuleNames.mapNotNull { modelsProvider.findIdeModule(it) } + } + + KotlinMultiplatformVersion.M2 -> { + rootManager.dependencies.filter { + // TODO: remove additional android check + it.isNewMPPModule && it.platform.isCommon() && it.externalProjectId == externalProjectId && (isAndroidModule() || it.isTestModule == isTestModule) + } + } + + KotlinMultiplatformVersion.M1 -> { + val modelsProvider = IdeModelsProviderImpl(project) + findOldFashionedImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) } } - } else { - val modelsProvider = IdeModelsProviderImpl(project) - findOldFashionedImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) } } }