Multiplatform: Fix dependencies of implementing module descriptors cache

This fixes some failing tests
This commit is contained in:
Alexey Sedunov
2017-09-29 18:25:29 +03:00
parent 67798d73a1
commit b288406e3c
@@ -130,18 +130,15 @@ private fun Module.findImplementingModules(modelsProvider: IdeModifiableModelsPr
} }
} }
private fun Module.findImplementingDescriptors(moduleSourceInfo: ModuleSourceInfo): List<ModuleDescriptor> { private fun Module.findImplementingModuleInfos(moduleSourceInfo: ModuleSourceInfo): List<ModuleSourceInfo> {
val modelsProvider = IdeModifiableModelsProviderImpl(project) val modelsProvider = IdeModifiableModelsProviderImpl(project)
val implementingModules = findImplementingModules(modelsProvider) val implementingModules = findImplementingModules(modelsProvider)
return implementingModules.mapNotNull { return implementingModules.mapNotNull {
val implementingModuleInfo = when (moduleSourceInfo) { when (moduleSourceInfo) {
is ModuleProductionSourceInfo -> it.productionSourceInfo() is ModuleProductionSourceInfo -> it.productionSourceInfo()
is ModuleTestSourceInfo -> it.testSourceInfo() is ModuleTestSourceInfo -> it.testSourceInfo()
else -> null else -> null
} }
implementingModuleInfo?.let {
KotlinCacheService.getInstance(project).getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor
}
} }
} }
@@ -150,9 +147,14 @@ val ModuleDescriptor.implementingDescriptors: List<ModuleDescriptor>
val moduleSourceInfo = getCapability(ModuleInfo.Capability) as? ModuleSourceInfo ?: return emptyList() val moduleSourceInfo = getCapability(ModuleInfo.Capability) as? ModuleSourceInfo ?: return emptyList()
val module = moduleSourceInfo.module val module = moduleSourceInfo.module
return module.cached(CachedValueProvider { return module.cached(CachedValueProvider {
val implementingModuleInfos = module.findImplementingModuleInfos(moduleSourceInfo)
val implementingModuleDescriptors = implementingModuleInfos.mapNotNull {
KotlinCacheService.getInstance(module.project).getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor
}
CachedValueProvider.Result( CachedValueProvider.Result(
module.findImplementingDescriptors(moduleSourceInfo), implementingModuleDescriptors,
ProjectRootModificationTracker.getInstance(module.project) *(implementingModuleInfos.map { it.createModificationTracker() } +
ProjectRootModificationTracker.getInstance(module.project)).toTypedArray()
) )
}) })
} }