提交 25df25cc 编写于 作者: D Dmitriy Dolovov

[Commonizer] Minor. Extract common module names from CommonizerParameters

上级 97000b12
......@@ -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()
}
}
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册