From 25df25ccc65ce708250fa9763aa5b2d2473d242b Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 5 Feb 2021 23:38:23 +0300 Subject: [PATCH] [Commonizer] Minor. Extract common module names from CommonizerParameters --- .../descriptors/commonizer/CommonizerParameters.kt | 11 +++++++---- .../commonizer/mergedtree/CirTreeMerger.kt | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt index 95b4fc4d980..32c6f2746b7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt @@ -38,14 +38,17 @@ class CommonizerParameters( _resultsConsumer = value } - fun hasAnythingToCommonize(): Boolean { - if (_targetProviders.size < 2) return false // too few targets + fun getCommonModuleNames(): Set { + if (_targetProviders.size < 2) return emptySet() // too few targets val allModuleNames: List> = _targetProviders.values.map { targetProvider -> targetProvider.modulesProvider.loadModuleInfos().mapTo(HashSet()) { it.name } } - val commonModuleNames: Set = allModuleNames.reduce { a, b -> a intersect b } - return commonModuleNames.isNotEmpty() // there are modules that are present in every target + return allModuleNames.reduce { a, b -> a intersect b } // there are modules that are present in every target + } + + fun hasAnythingToCommonize(): Boolean { + return getCommonModuleNames().isNotEmpty() } } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt index 51208812a40..a70643075ab 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt @@ -74,7 +74,7 @@ class CirTreeMerger( val allModuleInfos: List> = parameters.targetProviders.map { targetProvider -> targetProvider.modulesProvider.loadModuleInfos().associateBy { it.name } } - val commonModuleNames = allModuleInfos.map { it.keys }.reduce { a, b -> a intersect b } + val commonModuleNames = parameters.getCommonModuleNames() parameters.targetProviders.forEachIndexed { targetIndex, targetProvider -> val commonModuleInfos = allModuleInfos[targetIndex].filterKeys { it in commonModuleNames } @@ -127,7 +127,7 @@ class CirTreeMerger( val moduleNode: CirModuleNode = rootNode.modules.getOrPut(moduleName) { buildModuleNode(storageManager, size) } - moduleNode.targetDeclarations[targetIndex] = CirModuleFactory.create(moduleDescriptor) + moduleNode.targetDeclarations[targetIndex] = CirModuleFactory.create(moduleName) moduleDescriptor.collectNonEmptyPackageMemberScopes { packageFqName, packageMemberScope -> processPackage(moduleNode, targetIndex, packageFqName.intern(), packageMemberScope)