FIR: Turn SupertypeSupplier into a class

This commit is contained in:
Denis Zharkov
2019-11-12 12:46:47 +03:00
parent 56b5d170eb
commit 0f638db3e5
2 changed files with 5 additions and 5 deletions
@@ -13,11 +13,11 @@ import org.jetbrains.kotlin.fir.scopes.impl.*
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.*
interface SupertypeSupplier {
fun forClass(firClass: FirClass<*>): List<ConeClassLikeType>
fun expansionForTypeAlias(typeAlias: FirTypeAlias): ConeClassLikeType?
abstract class SupertypeSupplier {
abstract fun forClass(firClass: FirClass<*>): List<ConeClassLikeType>
abstract fun expansionForTypeAlias(typeAlias: FirTypeAlias): ConeClassLikeType?
object Default : SupertypeSupplier {
object Default : SupertypeSupplier() {
override fun forClass(firClass: FirClass<*>) = firClass.superConeTypes
override fun expansionForTypeAlias(typeAlias: FirTypeAlias) = typeAlias.expandedConeType
}
@@ -271,7 +271,7 @@ private class SupertypeComputationSession {
private val scopesForNestedClassesMap = hashMapOf<FirRegularClass, FirImmutableCompositeScope>()
private val supertypeStatusMap = linkedMapOf<FirClassLikeDeclaration<*>, SupertypeComputationStatus>()
val supertypesSupplier = object : SupertypeSupplier {
val supertypesSupplier = object : SupertypeSupplier() {
override fun forClass(firClass: FirClass<*>): List<ConeClassLikeType> {
if (firClass.resolvePhase > FirResolvePhase.SUPER_TYPES) return firClass.superConeTypes
return (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs?.mapNotNull {