[Commonizer] Minor. Reorganize CirClass.supertypes
This commit is contained in:
@@ -15,9 +15,7 @@ interface CirClass : CirClassifier, CirContainingClass {
|
||||
val isValue: Boolean
|
||||
val isInner: Boolean
|
||||
val isExternal: Boolean
|
||||
val supertypes: Collection<CirType>
|
||||
|
||||
fun setSupertypes(supertypes: Collection<CirType>)
|
||||
var supertypes: List<CirType>
|
||||
|
||||
companion object {
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
@@ -65,13 +63,12 @@ data class CirClassImpl(
|
||||
override val isInner: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
) : CirClass {
|
||||
private var _supertypes: Collection<CirType>? = null
|
||||
private var _supertypes: List<CirType>? = null
|
||||
|
||||
override val supertypes: Collection<CirType>
|
||||
get() = _supertypes.orEmpty()
|
||||
|
||||
override fun setSupertypes(supertypes: Collection<CirType>) {
|
||||
check(_supertypes == null)
|
||||
_supertypes = supertypes
|
||||
}
|
||||
override var supertypes: List<CirType>
|
||||
get() = _supertypes ?: error("${::supertypes.name} has not been initialized yet")
|
||||
set(value) {
|
||||
check(_supertypes == null) { "Re-initialization of ${::supertypes.name}" }
|
||||
_supertypes = value
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -20,8 +20,9 @@ object CirClassRecursionMarker : CirClass, CirRecursionMarker {
|
||||
override val isValue get() = unsupported()
|
||||
override val isInner get() = unsupported()
|
||||
override val isExternal get() = unsupported()
|
||||
override val supertypes get() = unsupported()
|
||||
override fun setSupertypes(supertypes: Collection<CirType>) = unsupported()
|
||||
override var supertypes: List<CirType>
|
||||
get() = unsupported()
|
||||
set(_) = unsupported()
|
||||
}
|
||||
|
||||
object CirClassifierRecursionMarker : CirClassifier, CirRecursionMarker {
|
||||
|
||||
+1
-1
@@ -147,6 +147,6 @@ internal class CommonizationVisitor(
|
||||
commonize(supertypesGroup, TypeCommonizer(classifiers))
|
||||
}.orEmpty()
|
||||
|
||||
setSupertypes(commonSupertypes)
|
||||
supertypes = commonSupertypes
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -264,7 +264,7 @@ object CirDeserializers {
|
||||
isInner = Flag.Class.IS_INNER(source.flags),
|
||||
isExternal = Flag.Class.IS_EXTERNAL(source.flags)
|
||||
).apply {
|
||||
setSupertypes(source.filteredSupertypes.compactMap { type(it, typeResolver) })
|
||||
supertypes = source.filteredSupertypes.compactMap { type(it, typeResolver) }
|
||||
}
|
||||
|
||||
fun defaultEnumEntry(
|
||||
@@ -294,7 +294,7 @@ object CirDeserializers {
|
||||
arguments = emptyList(),
|
||||
isMarkedNullable = false
|
||||
)
|
||||
setSupertypes(listOf(enumClassType))
|
||||
supertypes = listOf(enumClassType)
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
|
||||
Reference in New Issue
Block a user