[Commonizer] Use kotlin/Any as the default supertype for commonized class

This commit is contained in:
Dmitriy Dolovov
2021-02-01 21:52:15 +03:00
parent 2438265ba8
commit 6fe5f85da7
@@ -148,11 +148,15 @@ internal class CommonizationVisitor(
classId: ClassId,
supertypesMap: Map<CirType, CommonizedGroup<CirType>>?
) {
val commonSupertypes = supertypesMap?.values?.compactMapNotNull { supertypesGroup ->
commonize(supertypesGroup, TypeCommonizer(classifiers))
}.orEmpty()
setSupertypes(
if (supertypesMap.isNullOrEmpty())
if (classId in SPECIAL_CLASS_WITHOUT_SUPERTYPES_CIDS) emptyList() else listOf(CirTypeFactory.StandardTypes.ANY)
if (commonSupertypes.isEmpty() && classId !in SPECIAL_CLASS_WITHOUT_SUPERTYPES_CIDS)
listOf(CirTypeFactory.StandardTypes.ANY)
else
supertypesMap.values.compactMapNotNull { supertypesGroup -> commonize(supertypesGroup, TypeCommonizer(classifiers)) }
commonSupertypes
)
}
}