Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
25df25cc
K
kotlin
项目概览
硅谷海盗
/
kotlin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
25df25cc
编写于
2月 05, 2021
作者:
D
Dmitriy Dolovov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Commonizer] Minor. Extract common module names from CommonizerParameters
上级
97000b12
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
6 deletion
+9
-6
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt
...ins/kotlin/descriptors/commonizer/CommonizerParameters.kt
+7
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
...kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
+2
-2
未找到文件。
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerParameters.kt
浏览文件 @
25df25cc
...
...
@@ -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
()
}
}
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
浏览文件 @
25df25cc
...
...
@@ -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
(
module
Descriptor
)
moduleNode
.
targetDeclarations
[
targetIndex
]
=
CirModuleFactory
.
create
(
module
Name
)
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录