[Commonizer] Use Flag.Class.IS_VALUE instead of Flag.Class.IS_INLINE
Also: Rename CirClass.isInline to CirClass.isValue
This commit is contained in:
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.Visibility
|
||||
interface CirClass : CirClassifier, CirContainingClass {
|
||||
var companion: CirName? // null means no companion object
|
||||
val isCompanion: Boolean
|
||||
val isInline: Boolean
|
||||
val isValue: Boolean
|
||||
val isInner: Boolean
|
||||
val isExternal: Boolean
|
||||
val supertypes: Collection<CirType>
|
||||
@@ -31,7 +31,7 @@ interface CirClass : CirClassifier, CirContainingClass {
|
||||
companion: CirName?,
|
||||
isCompanion: Boolean,
|
||||
isData: Boolean,
|
||||
isInline: Boolean,
|
||||
isValue: Boolean,
|
||||
isInner: Boolean,
|
||||
isExternal: Boolean
|
||||
): CirClass = CirClassImpl(
|
||||
@@ -44,7 +44,7 @@ interface CirClass : CirClassifier, CirContainingClass {
|
||||
companion = companion,
|
||||
isCompanion = isCompanion,
|
||||
isData = isData,
|
||||
isInline = isInline,
|
||||
isValue = isValue,
|
||||
isInner = isInner,
|
||||
isExternal = isExternal
|
||||
)
|
||||
@@ -61,7 +61,7 @@ data class CirClassImpl(
|
||||
override var companion: CirName?,
|
||||
override val isCompanion: Boolean,
|
||||
override val isData: Boolean,
|
||||
override val isInline: Boolean,
|
||||
override val isValue: Boolean,
|
||||
override val isInner: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
) : CirClass {
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ object CirClassRecursionMarker : CirClass, CirRecursionMarker {
|
||||
set(_) = unsupported()
|
||||
override val isCompanion get() = unsupported()
|
||||
override val isData get() = unsupported()
|
||||
override val isInline get() = unsupported()
|
||||
override val isValue get() = unsupported()
|
||||
override val isInner get() = unsupported()
|
||||
override val isExternal get() = unsupported()
|
||||
override val supertypes get() = unsupported()
|
||||
|
||||
+4
-4
@@ -17,7 +17,7 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
||||
private val modality = ModalityCommonizer()
|
||||
private val visibility = VisibilityCommonizer.equalizing()
|
||||
private var isInner = false
|
||||
private var isInline = false
|
||||
private var isValue = false
|
||||
private var isCompanion = false
|
||||
|
||||
override fun commonizationResult() = CirClass.create(
|
||||
@@ -30,7 +30,7 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
||||
companion = null,
|
||||
isCompanion = isCompanion,
|
||||
isData = false,
|
||||
isInline = isInline,
|
||||
isValue = isValue,
|
||||
isInner = isInner,
|
||||
isExternal = false
|
||||
)
|
||||
@@ -39,14 +39,14 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
||||
name = first.name
|
||||
kind = first.kind
|
||||
isInner = first.isInner
|
||||
isInline = first.isInline
|
||||
isValue = first.isValue
|
||||
isCompanion = first.isCompanion
|
||||
}
|
||||
|
||||
override fun doCommonizeWith(next: CirClass) =
|
||||
kind == next.kind
|
||||
&& isInner == next.isInner
|
||||
&& isInline == next.isInline
|
||||
&& isValue == next.isValue
|
||||
&& isCompanion == next.isCompanion
|
||||
&& modality.commonizeWith(next.modality)
|
||||
&& visibility.commonizeWith(next)
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ private class TypeAliasExpectClassCommonizer : AbstractStandardCommonizer<CirTyp
|
||||
companion = null,
|
||||
isCompanion = false,
|
||||
isData = false,
|
||||
isInline = false,
|
||||
isValue = false,
|
||||
isInner = false,
|
||||
isExternal = false
|
||||
)
|
||||
|
||||
+2
-2
@@ -260,7 +260,7 @@ object CirDeserializers {
|
||||
companion = source.companionObject?.let(CirName::create),
|
||||
isCompanion = Flag.Class.IS_COMPANION_OBJECT(source.flags),
|
||||
isData = Flag.Class.IS_DATA(source.flags),
|
||||
isInline = Flag.Class.IS_INLINE(source.flags),
|
||||
isValue = Flag.Class.IS_VALUE(source.flags),
|
||||
isInner = Flag.Class.IS_INNER(source.flags),
|
||||
isExternal = Flag.Class.IS_EXTERNAL(source.flags)
|
||||
).apply {
|
||||
@@ -283,7 +283,7 @@ object CirDeserializers {
|
||||
companion = null,
|
||||
isCompanion = false,
|
||||
isData = false,
|
||||
isInline = false,
|
||||
isValue = false,
|
||||
isInner = false,
|
||||
isExternal = false
|
||||
).apply {
|
||||
|
||||
@@ -90,7 +90,7 @@ internal fun CirClass.classFlags(isExpect: Boolean): Flags =
|
||||
Flag.Class.IS_DATA.takeIf { isData },
|
||||
Flag.Class.IS_EXTERNAL.takeIf { isExternal },
|
||||
Flag.Class.IS_EXPECT.takeIf { isExpect },
|
||||
Flag.Class.IS_VALUE.takeIf { isInline },
|
||||
Flag.Class.IS_VALUE.takeIf { isValue },
|
||||
//Flag.Class.IS_FUN.takeIf { false }
|
||||
)
|
||||
|
||||
@@ -104,9 +104,9 @@ private inline val CirHasAnnotations.hasAnnotationsFlag: Flag?
|
||||
get() = if (annotations.isNotEmpty()) Flag.Common.HAS_ANNOTATIONS else null
|
||||
|
||||
// Since 1.4.30 a special @JvmInline annotation is generated to distinguish JVM-inline from value classes.
|
||||
// This has an effect on class serialization: Every class with isInline == true automatically gets HAS_ANNOTATIONS flag.
|
||||
// This has an effect on class serialization: Every class with isValue == true automatically gets HAS_ANNOTATIONS flag.
|
||||
private inline val CirClass.hasAnnotationsFlag: Flag?
|
||||
get() = if (annotations.isNotEmpty() || isInline) Flag.Common.HAS_ANNOTATIONS else null
|
||||
get() = if (annotations.isNotEmpty() || isValue) Flag.Common.HAS_ANNOTATIONS else null
|
||||
|
||||
private inline val CirProperty.hasAnnotationsFlag: Flag?
|
||||
get() = if (annotations.isNotEmpty() || !backingFieldAnnotations.isNullOrEmpty() || !delegateFieldAnnotations.isNullOrEmpty())
|
||||
|
||||
+1
-1
@@ -483,7 +483,7 @@ class TypeCommonizerTest : AbstractCommonizerTest<CirType, CirType>() {
|
||||
companion = null,
|
||||
isCompanion = false,
|
||||
isData = false,
|
||||
isInline = false,
|
||||
isValue = false,
|
||||
isInner = false,
|
||||
isExternal = false
|
||||
)
|
||||
|
||||
@@ -64,7 +64,7 @@ internal val MOCK_CLASSIFIERS = CirKnownClassifiers(
|
||||
companion = null,
|
||||
isCompanion = false,
|
||||
isData = false,
|
||||
isInline = false,
|
||||
isValue = false,
|
||||
isInner = false,
|
||||
isExternal = false
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user