From 182f5fafada987a9a43d815f2f6daad98bb8e953 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Thu, 5 Sep 2019 16:08:49 +0300 Subject: [PATCH] Take dependsOn-graph from corresponding property for MPP.M3 --- .../idea/caches/project/multiplatformUtil.kt | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) 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) } } }