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.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
|
|
||||||
interface SupertypeSupplier {
|
abstract class SupertypeSupplier {
|
||||||
fun forClass(firClass: FirClass<*>): List<ConeClassLikeType>
|
abstract fun forClass(firClass: FirClass<*>): List<ConeClassLikeType>
|
||||||
fun expansionForTypeAlias(typeAlias: FirTypeAlias): ConeClassLikeType?
|
abstract fun expansionForTypeAlias(typeAlias: FirTypeAlias): ConeClassLikeType?
|
||||||
|
|
||||||
object Default : SupertypeSupplier {
|
object Default : SupertypeSupplier() {
|
||||||
override fun forClass(firClass: FirClass<*>) = firClass.superConeTypes
|
override fun forClass(firClass: FirClass<*>) = firClass.superConeTypes
|
||||||
override fun expansionForTypeAlias(typeAlias: FirTypeAlias) = typeAlias.expandedConeType
|
override fun expansionForTypeAlias(typeAlias: FirTypeAlias) = typeAlias.expandedConeType
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -271,7 +271,7 @@ private class SupertypeComputationSession {
|
|||||||
private val scopesForNestedClassesMap = hashMapOf<FirRegularClass, FirImmutableCompositeScope>()
|
private val scopesForNestedClassesMap = hashMapOf<FirRegularClass, FirImmutableCompositeScope>()
|
||||||
private val supertypeStatusMap = linkedMapOf<FirClassLikeDeclaration<*>, SupertypeComputationStatus>()
|
private val supertypeStatusMap = linkedMapOf<FirClassLikeDeclaration<*>, SupertypeComputationStatus>()
|
||||||
|
|
||||||
val supertypesSupplier = object : SupertypeSupplier {
|
val supertypesSupplier = object : SupertypeSupplier() {
|
||||||
override fun forClass(firClass: FirClass<*>): List<ConeClassLikeType> {
|
override fun forClass(firClass: FirClass<*>): List<ConeClassLikeType> {
|
||||||
if (firClass.resolvePhase > FirResolvePhase.SUPER_TYPES) return firClass.superConeTypes
|
if (firClass.resolvePhase > FirResolvePhase.SUPER_TYPES) return firClass.superConeTypes
|
||||||
return (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs?.mapNotNull {
|
return (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs?.mapNotNull {
|
||||||
|
|||||||
Reference in New Issue
Block a user