FIR: Call ensureResolved(TYPES) when computing supertypes of a class
This commit is contained in:
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.transformers.ensureResolved
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
|
||||||
@@ -232,7 +233,7 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty
|
|||||||
is ConeTypeVariableTypeConstructor -> emptyList()
|
is ConeTypeVariableTypeConstructor -> emptyList()
|
||||||
is ConeTypeParameterLookupTag -> symbol.fir.bounds.map { it.coneType }
|
is ConeTypeParameterLookupTag -> symbol.fir.bounds.map { it.coneType }
|
||||||
is ConeClassLikeLookupTag -> {
|
is ConeClassLikeLookupTag -> {
|
||||||
when (val symbol = toClassLikeSymbol()) {
|
when (val symbol = toClassLikeSymbol().also { it?.ensureResolved(FirResolvePhase.TYPES, session) }) {
|
||||||
is FirClassSymbol<*> -> symbol.fir.superConeTypes
|
is FirClassSymbol<*> -> symbol.fir.superConeTypes
|
||||||
is FirTypeAliasSymbol -> listOfNotNull(symbol.fir.expandedConeType)
|
is FirTypeAliasSymbol -> listOfNotNull(symbol.fir.expandedConeType)
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
|
|||||||
Reference in New Issue
Block a user