[Commonizer] Use Flag.Class.IS_VALUE instead of Flag.Class.IS_INLINE

Also: Rename CirClass.isInline to CirClass.isValue
This commit is contained in:
Dmitriy Dolovov
2021-03-09 13:03:13 +03:00
parent 0fb99f1bf2
commit 1a3515dbab
8 changed files with 17 additions and 17 deletions
@@ -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 {
@@ -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()
@@ -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)
@@ -121,7 +121,7 @@ private class TypeAliasExpectClassCommonizer : AbstractStandardCommonizer<CirTyp
companion = null,
isCompanion = false,
isData = false,
isInline = false,
isValue = false,
isInner = false,
isExternal = false
)
@@ -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())
@@ -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
)