diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index 752756b051b..54217969b40 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -559,10 +559,9 @@ open class SupertypeComputationSession { val supertypesSupplier: SupertypeSupplier = object : SupertypeSupplier() { override fun forClass(firClass: FirClass, useSiteSession: FirSession): List { - if (firClass.superTypeRefs.all { it is FirResolvedTypeRef }) return firClass.superConeTypes - return (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs?.mapNotNull { - it.coneTypeSafe() - }.orEmpty() + val typeRefsFromSession = (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs + val typeRefsToReturn = typeRefsFromSession ?: getResolvedSuperTypeRefsForOutOfSessionDeclaration(firClass) + return typeRefsToReturn?.mapNotNull { it.coneTypeSafe() }.orEmpty() } override fun expansionForTypeAlias(typeAlias: FirTypeAlias, useSiteSession: FirSession): ConeClassLikeType? {