[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 {
|
interface CirClass : CirClassifier, CirContainingClass {
|
||||||
var companion: CirName? // null means no companion object
|
var companion: CirName? // null means no companion object
|
||||||
val isCompanion: Boolean
|
val isCompanion: Boolean
|
||||||
val isInline: Boolean
|
val isValue: Boolean
|
||||||
val isInner: Boolean
|
val isInner: Boolean
|
||||||
val isExternal: Boolean
|
val isExternal: Boolean
|
||||||
val supertypes: Collection<CirType>
|
val supertypes: Collection<CirType>
|
||||||
@@ -31,7 +31,7 @@ interface CirClass : CirClassifier, CirContainingClass {
|
|||||||
companion: CirName?,
|
companion: CirName?,
|
||||||
isCompanion: Boolean,
|
isCompanion: Boolean,
|
||||||
isData: Boolean,
|
isData: Boolean,
|
||||||
isInline: Boolean,
|
isValue: Boolean,
|
||||||
isInner: Boolean,
|
isInner: Boolean,
|
||||||
isExternal: Boolean
|
isExternal: Boolean
|
||||||
): CirClass = CirClassImpl(
|
): CirClass = CirClassImpl(
|
||||||
@@ -44,7 +44,7 @@ interface CirClass : CirClassifier, CirContainingClass {
|
|||||||
companion = companion,
|
companion = companion,
|
||||||
isCompanion = isCompanion,
|
isCompanion = isCompanion,
|
||||||
isData = isData,
|
isData = isData,
|
||||||
isInline = isInline,
|
isValue = isValue,
|
||||||
isInner = isInner,
|
isInner = isInner,
|
||||||
isExternal = isExternal
|
isExternal = isExternal
|
||||||
)
|
)
|
||||||
@@ -61,7 +61,7 @@ data class CirClassImpl(
|
|||||||
override var companion: CirName?,
|
override var companion: CirName?,
|
||||||
override val isCompanion: Boolean,
|
override val isCompanion: Boolean,
|
||||||
override val isData: Boolean,
|
override val isData: Boolean,
|
||||||
override val isInline: Boolean,
|
override val isValue: Boolean,
|
||||||
override val isInner: Boolean,
|
override val isInner: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
) : CirClass {
|
) : CirClass {
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ object CirClassRecursionMarker : CirClass, CirRecursionMarker {
|
|||||||
set(_) = unsupported()
|
set(_) = unsupported()
|
||||||
override val isCompanion get() = unsupported()
|
override val isCompanion get() = unsupported()
|
||||||
override val isData get() = unsupported()
|
override val isData get() = unsupported()
|
||||||
override val isInline get() = unsupported()
|
override val isValue get() = unsupported()
|
||||||
override val isInner get() = unsupported()
|
override val isInner get() = unsupported()
|
||||||
override val isExternal get() = unsupported()
|
override val isExternal get() = unsupported()
|
||||||
override val supertypes get() = unsupported()
|
override val supertypes get() = unsupported()
|
||||||
|
|||||||
+4
-4
@@ -17,7 +17,7 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
|||||||
private val modality = ModalityCommonizer()
|
private val modality = ModalityCommonizer()
|
||||||
private val visibility = VisibilityCommonizer.equalizing()
|
private val visibility = VisibilityCommonizer.equalizing()
|
||||||
private var isInner = false
|
private var isInner = false
|
||||||
private var isInline = false
|
private var isValue = false
|
||||||
private var isCompanion = false
|
private var isCompanion = false
|
||||||
|
|
||||||
override fun commonizationResult() = CirClass.create(
|
override fun commonizationResult() = CirClass.create(
|
||||||
@@ -30,7 +30,7 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
|||||||
companion = null,
|
companion = null,
|
||||||
isCompanion = isCompanion,
|
isCompanion = isCompanion,
|
||||||
isData = false,
|
isData = false,
|
||||||
isInline = isInline,
|
isValue = isValue,
|
||||||
isInner = isInner,
|
isInner = isInner,
|
||||||
isExternal = false
|
isExternal = false
|
||||||
)
|
)
|
||||||
@@ -39,14 +39,14 @@ class ClassCommonizer(classifiers: CirKnownClassifiers) : AbstractStandardCommon
|
|||||||
name = first.name
|
name = first.name
|
||||||
kind = first.kind
|
kind = first.kind
|
||||||
isInner = first.isInner
|
isInner = first.isInner
|
||||||
isInline = first.isInline
|
isValue = first.isValue
|
||||||
isCompanion = first.isCompanion
|
isCompanion = first.isCompanion
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doCommonizeWith(next: CirClass) =
|
override fun doCommonizeWith(next: CirClass) =
|
||||||
kind == next.kind
|
kind == next.kind
|
||||||
&& isInner == next.isInner
|
&& isInner == next.isInner
|
||||||
&& isInline == next.isInline
|
&& isValue == next.isValue
|
||||||
&& isCompanion == next.isCompanion
|
&& isCompanion == next.isCompanion
|
||||||
&& modality.commonizeWith(next.modality)
|
&& modality.commonizeWith(next.modality)
|
||||||
&& visibility.commonizeWith(next)
|
&& visibility.commonizeWith(next)
|
||||||
|
|||||||
+1
-1
@@ -121,7 +121,7 @@ private class TypeAliasExpectClassCommonizer : AbstractStandardCommonizer<CirTyp
|
|||||||
companion = null,
|
companion = null,
|
||||||
isCompanion = false,
|
isCompanion = false,
|
||||||
isData = false,
|
isData = false,
|
||||||
isInline = false,
|
isValue = false,
|
||||||
isInner = false,
|
isInner = false,
|
||||||
isExternal = false
|
isExternal = false
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -260,7 +260,7 @@ object CirDeserializers {
|
|||||||
companion = source.companionObject?.let(CirName::create),
|
companion = source.companionObject?.let(CirName::create),
|
||||||
isCompanion = Flag.Class.IS_COMPANION_OBJECT(source.flags),
|
isCompanion = Flag.Class.IS_COMPANION_OBJECT(source.flags),
|
||||||
isData = Flag.Class.IS_DATA(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),
|
isInner = Flag.Class.IS_INNER(source.flags),
|
||||||
isExternal = Flag.Class.IS_EXTERNAL(source.flags)
|
isExternal = Flag.Class.IS_EXTERNAL(source.flags)
|
||||||
).apply {
|
).apply {
|
||||||
@@ -283,7 +283,7 @@ object CirDeserializers {
|
|||||||
companion = null,
|
companion = null,
|
||||||
isCompanion = false,
|
isCompanion = false,
|
||||||
isData = false,
|
isData = false,
|
||||||
isInline = false,
|
isValue = false,
|
||||||
isInner = false,
|
isInner = false,
|
||||||
isExternal = false
|
isExternal = false
|
||||||
).apply {
|
).apply {
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ internal fun CirClass.classFlags(isExpect: Boolean): Flags =
|
|||||||
Flag.Class.IS_DATA.takeIf { isData },
|
Flag.Class.IS_DATA.takeIf { isData },
|
||||||
Flag.Class.IS_EXTERNAL.takeIf { isExternal },
|
Flag.Class.IS_EXTERNAL.takeIf { isExternal },
|
||||||
Flag.Class.IS_EXPECT.takeIf { isExpect },
|
Flag.Class.IS_EXPECT.takeIf { isExpect },
|
||||||
Flag.Class.IS_VALUE.takeIf { isInline },
|
Flag.Class.IS_VALUE.takeIf { isValue },
|
||||||
//Flag.Class.IS_FUN.takeIf { false }
|
//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
|
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.
|
// 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?
|
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?
|
private inline val CirProperty.hasAnnotationsFlag: Flag?
|
||||||
get() = if (annotations.isNotEmpty() || !backingFieldAnnotations.isNullOrEmpty() || !delegateFieldAnnotations.isNullOrEmpty())
|
get() = if (annotations.isNotEmpty() || !backingFieldAnnotations.isNullOrEmpty() || !delegateFieldAnnotations.isNullOrEmpty())
|
||||||
|
|||||||
+1
-1
@@ -483,7 +483,7 @@ class TypeCommonizerTest : AbstractCommonizerTest<CirType, CirType>() {
|
|||||||
companion = null,
|
companion = null,
|
||||||
isCompanion = false,
|
isCompanion = false,
|
||||||
isData = false,
|
isData = false,
|
||||||
isInline = false,
|
isValue = false,
|
||||||
isInner = false,
|
isInner = false,
|
||||||
isExternal = false
|
isExternal = false
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ internal val MOCK_CLASSIFIERS = CirKnownClassifiers(
|
|||||||
companion = null,
|
companion = null,
|
||||||
isCompanion = false,
|
isCompanion = false,
|
||||||
isData = false,
|
isData = false,
|
||||||
isInline = false,
|
isValue = false,
|
||||||
isInner = false,
|
isInner = false,
|
||||||
isExternal = false
|
isExternal = false
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user