[FIR] Move common members in symbols up in the hierarchy

This commit is contained in:
Dmitriy Novozhilov
2023-01-25 11:46:55 +02:00
committed by Space Team
parent a83caec94f
commit d856ae1f35
3 changed files with 14 additions and 27 deletions
@@ -551,8 +551,7 @@ val FirClassLikeSymbol<*>.classKind: ClassKind?
val FirBasedSymbol<*>.typeParameterSymbols: List<FirTypeParameterSymbol>?
get() = when (this) {
is FirCallableSymbol<*> -> typeParameterSymbols
is FirClassSymbol<*> -> typeParameterSymbols
is FirTypeAliasSymbol -> typeParameterSymbols
is FirClassLikeSymbol<*> -> typeParameterSymbols
else -> null
}
@@ -475,7 +475,7 @@ class FirSignatureEnhancement(
?: FakePureImplementationsProvider.getPurelyImplementedInterface(owner.symbol.classId)
?: return null
val superTypeSymbol = session.symbolProvider.getClassLikeSymbolByClassId(purelyImplementedClassId) ?: return null
val superTypeParameterSymbols = superTypeSymbol.typeParameterSymbols ?: return null
val superTypeParameterSymbols = superTypeSymbol.typeParameterSymbols
val typeParameters = owner.typeParameters
val supertypeParameterCount = superTypeParameterSymbols.size
val typeParameterCount = typeParameters.size
@@ -495,8 +495,7 @@ class FirSignatureEnhancement(
)
}
private fun enhanceSuperType(type: FirTypeRef): FirTypeRef =
private fun enhanceSuperType(type: FirTypeRef): FirTypeRef =
EnhancementSignatureParts(
session, typeQualifierResolver, null, isCovariant = false, forceOnlyHeadTypeConstructor = false,
AnnotationQualifierApplicabilityType.TYPE_USE, contextQualifiers
@@ -33,6 +33,17 @@ sealed class FirClassLikeSymbol<D : FirClassLikeDeclaration>(
val rawStatus: FirDeclarationStatus
get() = fir.status
val resolvedStatus: FirResolvedDeclarationStatus
get() {
lazyResolveToPhase(FirResolvePhase.STATUS)
return fir.status as FirResolvedDeclarationStatus
}
val typeParameterSymbols: List<FirTypeParameterSymbol>
get() {
return fir.typeParameters.map { it.symbol }
}
override fun toString(): String = "${this::class.simpleName} ${classId.asString()}"
}
@@ -58,19 +69,8 @@ sealed class FirClassSymbol<C : FirClass>(classId: ClassId) : FirClassLikeSymbol
return fir.declarations.map { it.symbol }
}
val typeParameterSymbols: List<FirTypeParameterSymbol>
get() {
return fir.typeParameters.map { it.symbol }
}
val classKind: ClassKind
get() = fir.classKind
val resolvedStatus: FirResolvedDeclarationStatus
get() {
lazyResolveToPhase(FirResolvePhase.STATUS)
return fir.status as FirResolvedDeclarationStatus
}
}
class FirRegularClassSymbol(classId: ClassId) : FirClassSymbol<FirRegularClass>(classId) {
@@ -91,20 +91,9 @@ class FirAnonymousObjectSymbol : FirClassSymbol<FirAnonymousObject>(ANONYMOUS_CL
class FirTypeAliasSymbol(classId: ClassId) : FirClassLikeSymbol<FirTypeAlias>(classId) {
override fun toLookupTag(): ConeClassLikeLookupTag = ConeClassLikeLookupTagImpl(classId)
val resolvedStatus: FirResolvedDeclarationStatus
get() {
lazyResolveToPhase(FirResolvePhase.STATUS)
return fir.status as FirResolvedDeclarationStatus
}
val resolvedExpandedTypeRef: FirResolvedTypeRef
get() {
lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
return fir.expandedTypeRef as FirResolvedTypeRef
}
val typeParameterSymbols: List<FirTypeParameterSymbol>
get() {
return fir.typeParameters.map { it.symbol }
}
}