[Commonizer] Minor. Extract common module names from CommonizerParameters
This commit is contained in:
+7
-4
@@ -38,14 +38,17 @@ class CommonizerParameters(
|
||||
_resultsConsumer = value
|
||||
}
|
||||
|
||||
fun hasAnythingToCommonize(): Boolean {
|
||||
if (_targetProviders.size < 2) return false // too few targets
|
||||
fun getCommonModuleNames(): Set<String> {
|
||||
if (_targetProviders.size < 2) return emptySet() // too few targets
|
||||
|
||||
val allModuleNames: List<Set<String>> = _targetProviders.values.map { targetProvider ->
|
||||
targetProvider.modulesProvider.loadModuleInfos().mapTo(HashSet()) { it.name }
|
||||
}
|
||||
val commonModuleNames: Set<String> = 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()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -74,7 +74,7 @@ class CirTreeMerger(
|
||||
val allModuleInfos: List<Map<String, ModuleInfo>> = 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)
|
||||
|
||||
Reference in New Issue
Block a user