[FIR] Move common members in symbols up in the hierarchy
This commit is contained in:
committed by
Space Team
parent
a83caec94f
commit
d856ae1f35
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -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 }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user