[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>?
|
val FirBasedSymbol<*>.typeParameterSymbols: List<FirTypeParameterSymbol>?
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
is FirCallableSymbol<*> -> typeParameterSymbols
|
is FirCallableSymbol<*> -> typeParameterSymbols
|
||||||
is FirClassSymbol<*> -> typeParameterSymbols
|
is FirClassLikeSymbol<*> -> typeParameterSymbols
|
||||||
is FirTypeAliasSymbol -> typeParameterSymbols
|
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -475,7 +475,7 @@ class FirSignatureEnhancement(
|
|||||||
?: FakePureImplementationsProvider.getPurelyImplementedInterface(owner.symbol.classId)
|
?: FakePureImplementationsProvider.getPurelyImplementedInterface(owner.symbol.classId)
|
||||||
?: return null
|
?: return null
|
||||||
val superTypeSymbol = session.symbolProvider.getClassLikeSymbolByClassId(purelyImplementedClassId) ?: 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 typeParameters = owner.typeParameters
|
||||||
val supertypeParameterCount = superTypeParameterSymbols.size
|
val supertypeParameterCount = superTypeParameterSymbols.size
|
||||||
val typeParameterCount = typeParameters.size
|
val typeParameterCount = typeParameters.size
|
||||||
@@ -495,8 +495,7 @@ class FirSignatureEnhancement(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun enhanceSuperType(type: FirTypeRef): FirTypeRef =
|
||||||
private fun enhanceSuperType(type: FirTypeRef): FirTypeRef =
|
|
||||||
EnhancementSignatureParts(
|
EnhancementSignatureParts(
|
||||||
session, typeQualifierResolver, null, isCovariant = false, forceOnlyHeadTypeConstructor = false,
|
session, typeQualifierResolver, null, isCovariant = false, forceOnlyHeadTypeConstructor = false,
|
||||||
AnnotationQualifierApplicabilityType.TYPE_USE, contextQualifiers
|
AnnotationQualifierApplicabilityType.TYPE_USE, contextQualifiers
|
||||||
|
|||||||
@@ -33,6 +33,17 @@ sealed class FirClassLikeSymbol<D : FirClassLikeDeclaration>(
|
|||||||
val rawStatus: FirDeclarationStatus
|
val rawStatus: FirDeclarationStatus
|
||||||
get() = fir.status
|
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()}"
|
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 }
|
return fir.declarations.map { it.symbol }
|
||||||
}
|
}
|
||||||
|
|
||||||
val typeParameterSymbols: List<FirTypeParameterSymbol>
|
|
||||||
get() {
|
|
||||||
return fir.typeParameters.map { it.symbol }
|
|
||||||
}
|
|
||||||
|
|
||||||
val classKind: ClassKind
|
val classKind: ClassKind
|
||||||
get() = fir.classKind
|
get() = fir.classKind
|
||||||
|
|
||||||
val resolvedStatus: FirResolvedDeclarationStatus
|
|
||||||
get() {
|
|
||||||
lazyResolveToPhase(FirResolvePhase.STATUS)
|
|
||||||
return fir.status as FirResolvedDeclarationStatus
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class FirRegularClassSymbol(classId: ClassId) : FirClassSymbol<FirRegularClass>(classId) {
|
class FirRegularClassSymbol(classId: ClassId) : FirClassSymbol<FirRegularClass>(classId) {
|
||||||
@@ -91,20 +91,9 @@ class FirAnonymousObjectSymbol : FirClassSymbol<FirAnonymousObject>(ANONYMOUS_CL
|
|||||||
class FirTypeAliasSymbol(classId: ClassId) : FirClassLikeSymbol<FirTypeAlias>(classId) {
|
class FirTypeAliasSymbol(classId: ClassId) : FirClassLikeSymbol<FirTypeAlias>(classId) {
|
||||||
override fun toLookupTag(): ConeClassLikeLookupTag = ConeClassLikeLookupTagImpl(classId)
|
override fun toLookupTag(): ConeClassLikeLookupTag = ConeClassLikeLookupTagImpl(classId)
|
||||||
|
|
||||||
val resolvedStatus: FirResolvedDeclarationStatus
|
|
||||||
get() {
|
|
||||||
lazyResolveToPhase(FirResolvePhase.STATUS)
|
|
||||||
return fir.status as FirResolvedDeclarationStatus
|
|
||||||
}
|
|
||||||
|
|
||||||
val resolvedExpandedTypeRef: FirResolvedTypeRef
|
val resolvedExpandedTypeRef: FirResolvedTypeRef
|
||||||
get() {
|
get() {
|
||||||
lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
|
lazyResolveToPhase(FirResolvePhase.SUPER_TYPES)
|
||||||
return fir.expandedTypeRef as FirResolvedTypeRef
|
return fir.expandedTypeRef as FirResolvedTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
val typeParameterSymbols: List<FirTypeParameterSymbol>
|
|
||||||
get() {
|
|
||||||
return fir.typeParameters.map { it.symbol }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user