FIR: Turn SupertypeSupplier into a class
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user