Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
97000b12
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,发现更多精彩内容 >>
提交
97000b12
编写于
2月 05, 2021
作者:
D
Dmitriy Dolovov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Commonizer] Drop CirContainingClassdetails in favor of CirClass entity
上级
054b5919
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
62 addition
and
103 deletion
+62
-103
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt
...g/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt
+1
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt
.../kotlin/descriptors/commonizer/cir/CirClassConstructor.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirContainingClassDetails.kt
...n/descriptors/commonizer/cir/CirContainingClassDetails.kt
+0
-15
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt
...rains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt
+9
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt
...otlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt
...tors/commonizer/cir/factory/CirClassConstructorFactory.kt
+4
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirContainingClassDetailsFactory.kt
...ommonizer/cir/factory/CirContainingClassDetailsFactory.kt
+0
-49
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt
.../descriptors/commonizer/cir/factory/CirFunctionFactory.kt
+4
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt
.../descriptors/commonizer/cir/factory/CirPropertyFactory.kt
+4
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt
...escriptors/commonizer/cir/impl/CirClassConstructorImpl.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt
...kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt
...kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
...s/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt
...descriptors/commonizer/core/ClassConstructorCommonizer.kt
+13
-4
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt
.../kotlin/descriptors/commonizer/core/FunctionCommonizer.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt
.../kotlin/descriptors/commonizer/core/PropertyCommonizer.kt
+1
-1
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
...kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
+12
-3
native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt
...ptors/commonizer/core/LoweringVisibilityCommonizerTest.kt
+7
-7
未找到文件。
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt
浏览文件 @
97000b12
...
...
@@ -5,14 +5,11 @@
package
org.jetbrains.kotlin.descriptors.commonizer.cir
import
org.jetbrains.kotlin.descriptors.ClassKind
import
org.jetbrains.kotlin.name.Name
interface
CirClass
:
CirClassifier
,
CirHasModality
{
val
kind
:
ClassKind
interface
CirClass
:
CirClassifier
,
CirContainingClass
{
var
companion
:
Name
?
// null means no companion object
val
isCompanion
:
Boolean
val
isData
:
Boolean
val
isInline
:
Boolean
val
isInner
:
Boolean
val
isExternal
:
Boolean
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt
浏览文件 @
97000b12
...
...
@@ -14,5 +14,5 @@ interface CirClassConstructor :
CirCallableMemberWithParameters
{
val
isPrimary
:
Boolean
override
val
containingClass
Details
:
CirContainingClassDetail
s
// non-nullable
override
val
containingClass
:
CirContainingClas
s
// non-nullable
}
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirContainingClassDetails.kt
已删除
100644 → 0
浏览文件 @
054b5919
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package
org.jetbrains.kotlin.descriptors.commonizer.cir
import
org.jetbrains.kotlin.descriptors.ClassKind
import
org.jetbrains.kotlin.descriptors.Modality
data class
CirContainingClassDetails
(
val
kind
:
ClassKind
,
override
val
modality
:
Modality
,
val
isData
:
Boolean
)
:
CirHasModality
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt
浏览文件 @
97000b12
...
...
@@ -44,7 +44,15 @@ interface CirHasModality {
}
interface
CirMaybeCallableMemberOfClass
{
val
containingClassDetails
:
CirContainingClassDetails
?
// null assumes no containing class
val
containingClass
:
CirContainingClass
?
// null assumes no containing class
}
/**
* A subset of containing [CirClass] visible to such class members as [CirFunction], [CirProperty] and [CirClassConstructor].
*/
interface
CirContainingClass
:
CirHasModality
{
val
kind
:
ClassKind
val
isData
:
Boolean
}
interface
CirHasTypeParameters
{
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt
浏览文件 @
97000b12
...
...
@@ -26,5 +26,5 @@ interface CirFunctionOrProperty :
fun
isVirtual
():
Boolean
=
visibility
!=
DescriptorVisibilities
.
PRIVATE
&&
modality
!=
Modality
.
FINAL
&&
!(
containingClass
Details
?.
modality
==
Modality
.
FINAL
&&
containingClassDetail
s
?.
kind
!=
ClassKind
.
ENUM_CLASS
)
&&
!(
containingClass
?.
modality
==
Modality
.
FINAL
&&
containingClas
s
?.
kind
!=
ClassKind
.
ENUM_CLASS
)
}
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt
浏览文件 @
97000b12
...
...
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap
import
org.jetbrains.kotlin.descriptors.commonizer.utils.compactMapNotNull
object
CirClassConstructorFactory
{
fun
create
(
source
:
ClassConstructorDescriptor
):
CirClassConstructor
{
fun
create
(
source
:
ClassConstructorDescriptor
,
containingClass
:
CirContainingClass
):
CirClassConstructor
{
check
(
source
.
kind
==
CallableMemberDescriptor
.
Kind
.
DECLARATION
)
{
"Unexpected ${CallableMemberDescriptor.Kind::class.java} for class constructor $source, ${source::class.java}: ${source.kind}"
}
...
...
@@ -26,7 +26,7 @@ object CirClassConstructorFactory {
typeParameter
.
takeIf
{
it
.
containingDeclaration
==
source
}
?.
let
(
CirTypeParameterFactory
::
create
)
},
visibility
=
source
.
visibility
,
containingClass
Details
=
CirContainingClassDetailsFactory
.
create
(
source
)
,
containingClass
=
containingClass
,
valueParameters
=
source
.
valueParameters
.
compactMap
(
CirValueParameterFactory
::
create
),
hasStableParameterNames
=
source
.
hasStableParameterNames
(),
isPrimary
=
source
.
isPrimary
...
...
@@ -38,7 +38,7 @@ object CirClassConstructorFactory {
annotations
:
List
<
CirAnnotation
>,
typeParameters
:
List
<
CirTypeParameter
>,
visibility
:
DescriptorVisibility
,
containingClass
Details
:
CirContainingClassDetail
s
,
containingClass
:
CirContainingClas
s
,
valueParameters
:
List
<
CirValueParameter
>,
hasStableParameterNames
:
Boolean
,
isPrimary
:
Boolean
...
...
@@ -47,7 +47,7 @@ object CirClassConstructorFactory {
annotations
=
annotations
,
typeParameters
=
typeParameters
,
visibility
=
visibility
,
containingClass
Details
=
containingClassDetail
s
,
containingClass
=
containingClas
s
,
valueParameters
=
valueParameters
,
hasStableParameterNames
=
hasStableParameterNames
,
isPrimary
=
isPrimary
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirContainingClassDetailsFactory.kt
已删除
100644 → 0
浏览文件 @
054b5919
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package
org.jetbrains.kotlin.descriptors.commonizer.cir.factory
import
org.jetbrains.kotlin.descriptors.*
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClassDetails
import
org.jetbrains.kotlin.descriptors.commonizer.utils.Interner
object
CirContainingClassDetailsFactory
{
private
val
interner
=
Interner
<
CirContainingClassDetails
>()
// speed optimization
val
DOES_NOT_MATTER
:
CirContainingClassDetails
=
create
(
kind
=
ClassKind
.
CLASS
,
modality
=
Modality
.
FINAL
,
isData
=
false
)
fun
create
(
source
:
ClassConstructorDescriptor
):
CirContainingClassDetails
=
doCreate
(
source
.
containingDeclaration
)
fun
create
(
source
:
CallableMemberDescriptor
):
CirContainingClassDetails
?
{
val
containingClass
:
ClassDescriptor
=
source
.
containingDeclaration
as
?
ClassDescriptor
?:
return
null
return
doCreate
(
containingClass
)
}
@Suppress
(
"NOTHING_TO_INLINE"
)
private
inline
fun
doCreate
(
containingClass
:
ClassDescriptor
):
CirContainingClassDetails
=
create
(
kind
=
containingClass
.
kind
,
modality
=
containingClass
.
modality
,
isData
=
containingClass
.
isData
)
fun
create
(
kind
:
ClassKind
,
modality
:
Modality
,
isData
:
Boolean
):
CirContainingClassDetails
{
return
interner
.
intern
(
CirContainingClassDetails
(
kind
=
kind
,
modality
=
modality
,
isData
=
isData
)
)
}
}
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt
浏览文件 @
97000b12
...
...
@@ -13,13 +13,13 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.intern
import
org.jetbrains.kotlin.name.Name
object
CirFunctionFactory
{
fun
create
(
source
:
SimpleFunctionDescriptor
):
CirFunction
=
create
(
fun
create
(
source
:
SimpleFunctionDescriptor
,
containingClass
:
CirContainingClass
?
):
CirFunction
=
create
(
annotations
=
source
.
annotations
.
compactMap
(
CirAnnotationFactory
::
create
),
name
=
source
.
name
.
intern
(),
typeParameters
=
source
.
typeParameters
.
compactMap
(
CirTypeParameterFactory
::
create
),
visibility
=
source
.
visibility
,
modality
=
source
.
modality
,
containingClass
Details
=
CirContainingClassDetailsFactory
.
create
(
source
)
,
containingClass
=
containingClass
,
valueParameters
=
source
.
valueParameters
.
compactMap
(
CirValueParameterFactory
::
create
),
hasStableParameterNames
=
source
.
hasStableParameterNames
(),
extensionReceiver
=
source
.
extensionReceiverParameter
?.
let
(
CirExtensionReceiverFactory
::
create
),
...
...
@@ -35,7 +35,7 @@ object CirFunctionFactory {
typeParameters
:
List
<
CirTypeParameter
>,
visibility
:
DescriptorVisibility
,
modality
:
Modality
,
containingClass
Details
:
CirContainingClassDetail
s
?,
containingClass
:
CirContainingClas
s
?,
valueParameters
:
List
<
CirValueParameter
>,
hasStableParameterNames
:
Boolean
,
extensionReceiver
:
CirExtensionReceiver
?,
...
...
@@ -49,7 +49,7 @@ object CirFunctionFactory {
typeParameters
=
typeParameters
,
visibility
=
visibility
,
modality
=
modality
,
containingClass
Details
=
containingClassDetail
s
,
containingClass
=
containingClas
s
,
valueParameters
=
valueParameters
,
hasStableParameterNames
=
hasStableParameterNames
,
extensionReceiver
=
extensionReceiver
,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt
浏览文件 @
97000b12
...
...
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.name.Name
import
org.jetbrains.kotlin.resolve.constants.ConstantValue
object
CirPropertyFactory
{
fun
create
(
source
:
PropertyDescriptor
):
CirProperty
{
fun
create
(
source
:
PropertyDescriptor
,
containingClass
:
CirContainingClass
?
):
CirProperty
{
val
compileTimeInitializer
:
ConstantValue
<
*
>?
=
source
.
compileTimeInitializer
if
(
compileTimeInitializer
!=
null
)
{
checkConstantSupportedInCommonization
(
...
...
@@ -34,7 +34,7 @@ object CirPropertyFactory {
typeParameters
=
source
.
typeParameters
.
compactMap
(
CirTypeParameterFactory
::
create
),
visibility
=
source
.
visibility
,
modality
=
source
.
modality
,
containingClass
Details
=
CirContainingClassDetailsFactory
.
create
(
source
)
,
containingClass
=
containingClass
,
isExternal
=
source
.
isExternal
,
extensionReceiver
=
source
.
extensionReceiverParameter
?.
let
(
CirExtensionReceiverFactory
::
create
),
returnType
=
CirTypeFactory
.
create
(
source
.
returnType
!!
),
...
...
@@ -58,7 +58,7 @@ object CirPropertyFactory {
typeParameters
:
List
<
CirTypeParameter
>,
visibility
:
DescriptorVisibility
,
modality
:
Modality
,
containingClass
Details
:
CirContainingClassDetail
s
?,
containingClass
:
CirContainingClas
s
?,
isExternal
:
Boolean
,
extensionReceiver
:
CirExtensionReceiver
?,
returnType
:
CirType
,
...
...
@@ -79,7 +79,7 @@ object CirPropertyFactory {
typeParameters
=
typeParameters
,
visibility
=
visibility
,
modality
=
modality
,
containingClass
Details
=
containingClassDetail
s
,
containingClass
=
containingClas
s
,
isExternal
=
isExternal
,
extensionReceiver
=
extensionReceiver
,
returnType
=
returnType
,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt
浏览文件 @
97000b12
...
...
@@ -12,7 +12,7 @@ data class CirClassConstructorImpl(
override
val
annotations
:
List
<
CirAnnotation
>,
override
val
typeParameters
:
List
<
CirTypeParameter
>,
override
val
visibility
:
DescriptorVisibility
,
override
val
containingClass
Details
:
CirContainingClassDetail
s
,
override
val
containingClass
:
CirContainingClas
s
,
override
var
valueParameters
:
List
<
CirValueParameter
>,
override
var
hasStableParameterNames
:
Boolean
,
override
val
isPrimary
:
Boolean
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt
浏览文件 @
97000b12
...
...
@@ -17,7 +17,7 @@ data class CirFunctionImpl(
override
val
typeParameters
:
List
<
CirTypeParameter
>,
override
val
visibility
:
DescriptorVisibility
,
override
val
modality
:
Modality
,
override
val
containingClass
Details
:
CirContainingClassDetail
s
?,
override
val
containingClass
:
CirContainingClas
s
?,
override
var
valueParameters
:
List
<
CirValueParameter
>,
override
var
hasStableParameterNames
:
Boolean
,
override
val
extensionReceiver
:
CirExtensionReceiver
?,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt
浏览文件 @
97000b12
...
...
@@ -18,7 +18,7 @@ data class CirPropertyImpl(
override
val
typeParameters
:
List
<
CirTypeParameter
>,
override
val
visibility
:
DescriptorVisibility
,
override
val
modality
:
Modality
,
override
val
containingClass
Details
:
CirContainingClassDetail
s
?,
override
val
containingClass
:
CirContainingClas
s
?,
override
val
isExternal
:
Boolean
,
override
val
extensionReceiver
:
CirExtensionReceiver
?,
override
val
returnType
:
CirType
,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
浏览文件 @
97000b12
...
...
@@ -30,7 +30,7 @@ abstract class AbstractFunctionOrPropertyCommonizer<T : CirFunctionOrProperty>(
override
fun
doCommonizeWith
(
next
:
T
):
Boolean
=
next
.
kind
!=
DELEGATION
// delegated members should not be commonized
&&
(
next
.
kind
!=
SYNTHESIZED
||
next
.
containingClass
Details
?.
isData
!=
true
)
// synthesized members of data classes should not be commonized
&&
(
next
.
kind
!=
SYNTHESIZED
||
next
.
containingClass
?.
isData
!=
true
)
// synthesized members of data classes should not be commonized
&&
kind
==
next
.
kind
&&
modality
.
commonizeWith
(
next
.
modality
)
&&
visibility
.
commonizeWith
(
next
)
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt
浏览文件 @
97000b12
...
...
@@ -5,10 +5,11 @@
package
org.jetbrains.kotlin.descriptors.commonizer.core
import
org.jetbrains.kotlin.descriptors.ClassKind
import
org.jetbrains.kotlin.descriptors.Modality
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassConstructor
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass
import
org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirClassConstructorFactory
import
org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirContainingClassDetailsFactory
import
org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirKnownClassifiers
class
ClassConstructorCommonizer
(
...
...
@@ -27,7 +28,7 @@ class ClassConstructorCommonizer(
annotations
=
emptyList
(),
typeParameters
=
typeParameters
.
result
,
visibility
=
visibility
.
result
,
containingClass
Details
=
CirContainingClassDetailsFactory
.
DOES_NOT_MATTER
,
containingClass
=
CONTAINING_CLASS_DOES_NOT_MATTER
,
// does not matter
valueParameters
=
valueParameters
.
valueParameters
,
hasStableParameterNames
=
valueParameters
.
hasStableParameterNames
,
isPrimary
=
isPrimary
...
...
@@ -39,11 +40,19 @@ class ClassConstructorCommonizer(
}
override
fun
doCommonizeWith
(
next
:
CirClassConstructor
):
Boolean
{
return
!
next
.
containingClass
Details
.
kind
.
isSingleton
// don't commonize constructors for objects and enum entries
&&
next
.
containingClass
Details
.
modality
!=
Modality
.
SEALED
// don't commonize constructors for sealed classes (not not their subclasses)
return
!
next
.
containingClass
.
kind
.
isSingleton
// don't commonize constructors for objects and enum entries
&&
next
.
containingClass
.
modality
!=
Modality
.
SEALED
// don't commonize constructors for sealed classes (not not their subclasses)
&&
isPrimary
==
next
.
isPrimary
&&
visibility
.
commonizeWith
(
next
)
&&
typeParameters
.
commonizeWith
(
next
.
typeParameters
)
&&
valueParameters
.
commonizeWith
(
next
)
}
companion
object
{
private
val
CONTAINING_CLASS_DOES_NOT_MATTER
=
object
:
CirContainingClass
{
override
val
modality
get
()
=
Modality
.
FINAL
override
val
kind
get
()
=
ClassKind
.
CLASS
override
val
isData
get
()
=
false
}
}
}
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt
浏览文件 @
97000b12
...
...
@@ -24,7 +24,7 @@ class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP
typeParameters
=
typeParameters
.
result
,
visibility
=
visibility
.
result
,
modality
=
modality
.
result
,
containingClass
Details
=
null
,
containingClass
=
null
,
// does not matter
valueParameters
=
valueParameters
.
valueParameters
,
hasStableParameterNames
=
valueParameters
.
hasStableParameterNames
,
extensionReceiver
=
extensionReceiver
.
result
,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt
浏览文件 @
97000b12
...
...
@@ -34,7 +34,7 @@ class PropertyCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP
typeParameters
=
typeParameters
.
result
,
visibility
=
visibility
.
result
,
modality
=
modality
.
result
,
containingClass
Details
=
null
,
containingClass
=
null
,
// does not matter
isExternal
=
isExternal
,
extensionReceiver
=
extensionReceiver
.
result
,
returnType
=
returnType
.
result
,
...
...
native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt
浏览文件 @
97000b12
...
...
@@ -171,7 +171,10 @@ class CirTreeMerger(
val
propertyNode
:
CirPropertyNode
=
ownerNode
.
properties
.
getOrPut
(
PropertyApproximationKey
(
propertyDescriptor
))
{
buildPropertyNode
(
storageManager
,
size
,
classifiers
,
(
ownerNode
as
?
CirClassNode
)
?.
commonDeclaration
)
}
propertyNode
.
targetDeclarations
[
targetIndex
]
=
CirPropertyFactory
.
create
(
propertyDescriptor
)
propertyNode
.
targetDeclarations
[
targetIndex
]
=
CirPropertyFactory
.
create
(
source
=
propertyDescriptor
,
containingClass
=
(
ownerNode
as
?
CirClassNode
)
?.
targetDeclarations
?.
get
(
targetIndex
)
)
}
private
fun
processFunction
(
...
...
@@ -182,7 +185,10 @@ class CirTreeMerger(
val
functionNode
:
CirFunctionNode
=
ownerNode
.
functions
.
getOrPut
(
FunctionApproximationKey
(
functionDescriptor
))
{
buildFunctionNode
(
storageManager
,
size
,
classifiers
,
(
ownerNode
as
?
CirClassNode
)
?.
commonDeclaration
)
}
functionNode
.
targetDeclarations
[
targetIndex
]
=
CirFunctionFactory
.
create
(
functionDescriptor
)
functionNode
.
targetDeclarations
[
targetIndex
]
=
CirFunctionFactory
.
create
(
source
=
functionDescriptor
,
containingClass
=
(
ownerNode
as
?
CirClassNode
)
?.
targetDeclarations
?.
get
(
targetIndex
)
)
}
private
fun
processClass
(
...
...
@@ -228,7 +234,10 @@ class CirTreeMerger(
val
constructorNode
:
CirClassConstructorNode
=
classNode
.
constructors
.
getOrPut
(
ConstructorApproximationKey
(
constructorDescriptor
))
{
buildClassConstructorNode
(
storageManager
,
size
,
classifiers
,
classNode
.
commonDeclaration
)
}
constructorNode
.
targetDeclarations
[
targetIndex
]
=
CirClassConstructorFactory
.
create
(
constructorDescriptor
)
constructorNode
.
targetDeclarations
[
targetIndex
]
=
CirClassConstructorFactory
.
create
(
source
=
constructorDescriptor
,
containingClass
=
classNode
.
targetDeclarations
[
targetIndex
]
!!
)
}
private
fun
processTypeAlias
(
...
...
native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt
浏览文件 @
97000b12
...
...
@@ -9,9 +9,9 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import
org.jetbrains.kotlin.descriptors.Modality
import
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.*
import
org.jetbrains.kotlin.descriptors.DescriptorVisibility
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunctionOrProperty
import
org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility
import
org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirContainingClassDetailsFactory
import
org.jetbrains.kotlin.descriptors.commonizer.cir.impl.unsupported
import
org.junit.Test
...
...
@@ -50,12 +50,12 @@ abstract class LoweringVisibilityCommonizerTest(
override
val
typeParameters
get
()
=
unsupported
()
override
val
visibility
=
this
@toMock
override
val
modality
get
()
=
if
(
areMembersVirtual
)
Modality
.
OPEN
else
Modality
.
FINAL
override
val
containingClass
Details
=
if
(
areMembersVirtual
)
CirContainingClassDetailsFactory
.
create
(
kind
=
ClassKind
.
CLASS
,
modality
=
Modality
.
OPEN
,
isData
=
false
)
else
null
override
val
containingClass
=
if
(
areMembersVirtual
)
object
:
CirContainingClass
{
override
val
modality
get
()
=
Modality
.
OPEN
override
val
kind
get
()
=
ClassKind
.
CLASS
override
val
isData
get
()
=
false
}
else
null
override
val
extensionReceiver
get
()
=
unsupported
()
override
val
returnType
get
()
=
unsupported
()
override
val
kind
get
()
=
unsupported
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录