From 0157d7bd5d5705b4061a09092dd471d47384829b Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 29 May 2018 17:53:36 +0200 Subject: [PATCH] Mpp utils: remove erroneous cache Note: can't use Module.cached to calculate data that depends on input other than the module itself (isTests in this case) --- .../idea/caches/project/multiplatformUtil.kt | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 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 555909126cb..3a17da9eb4b 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 @@ -37,6 +37,15 @@ val Module.implementedModules: List } ) +private fun Module.findImplementedModuleNames(): List { + val facet = FacetManager.getInstance(this).findFacet( + KotlinFacetType.TYPE_ID, + FacetTypeRegistry.getInstance().findFacetType(ID)!!.defaultFacetName + ) + return facet?.configuration?.settings?.implementedModuleNames ?: emptyList() +} + + val ModuleDescriptor.implementingDescriptors: List get() { val moduleInfo = getCapability(ModuleInfo.Capability) @@ -44,18 +53,8 @@ val ModuleDescriptor.implementingDescriptors: List return listOf(this) } val moduleSourceInfo = moduleInfo as? ModuleSourceInfo ?: return emptyList() - val module = moduleSourceInfo.module - return module.cached(CachedValueProvider { - val implementingModuleInfos = module.implementingModules.mapNotNull { it.toInfo(moduleSourceInfo.isTests()) } - val implementingModuleDescriptors = implementingModuleInfos.mapNotNull { - KotlinCacheService.getInstance(module.project).getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor - } - CachedValueProvider.Result( - implementingModuleDescriptors, - *(implementingModuleInfos.map { it.createModificationTracker() } + - ProjectRootModificationTracker.getInstance(module.project)).toTypedArray() - ) - }) + val implementingModuleInfos = moduleSourceInfo.module.implementingModules.mapNotNull { it.toInfo(moduleSourceInfo.isTests()) } + return implementingModuleInfos.mapNotNull { it.toDescriptor() } } private fun Module.toInfo(isTests: Boolean): ModuleSourceInfo? = @@ -68,16 +67,8 @@ val ModuleDescriptor.implementedDescriptors: List val moduleSourceInfo = moduleInfo as? ModuleSourceInfo ?: return emptyList() - return moduleSourceInfo.expectedBy.mapNotNull { - KotlinCacheService.getInstance(moduleSourceInfo.module.project) - .getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor - } + return moduleSourceInfo.expectedBy.mapNotNull { it.toDescriptor() } } -private fun Module.findImplementedModuleNames(): List { - val facet = FacetManager.getInstance(this).findFacet( - KotlinFacetType.TYPE_ID, - FacetTypeRegistry.getInstance().findFacetType(ID)!!.defaultFacetName - ) - return facet?.configuration?.settings?.implementedModuleNames ?: emptyList() -} +private fun ModuleSourceInfo.toDescriptor() = KotlinCacheService.getInstance(module.project) + .getResolutionFacadeByModuleInfo(this, platform)?.moduleDescriptor