[FIR] Unity FirCallableDeclaration and FirCallableMemberDeclaration
After removal of all diamonds in FirDeclaration hierarchy FirCallableMemberDeclaration was only one inheritor of FirCallableDeclaration, so there is no need to keep them both
This commit is contained in:
committed by
teamcityserver
parent
adc45fd3dd
commit
51fc2e453f
+1
-1
@@ -58,7 +58,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List<FirDeclara
|
||||
val containingClass = when (declaration) {
|
||||
is FirCallableDeclaration -> {
|
||||
if (declaration.symbol.callableId.isLocal) return null
|
||||
if ((declaration as? FirCallableMemberDeclaration)?.status?.visibility == Visibilities.Local) return null
|
||||
if ((declaration as? FirCallableDeclaration)?.status?.visibility == Visibilities.Local) return null
|
||||
when (declaration) {
|
||||
is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor -> {
|
||||
val klass = declaration.containingClass() ?: return emptyList()
|
||||
|
||||
+3
-3
@@ -115,7 +115,7 @@ internal class FirIdeRenderer private constructor(
|
||||
return if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
||||
}
|
||||
val containingFirClass = containingDeclaration as? FirRegularClass ?: return Modality.FINAL
|
||||
if (this !is FirCallableMemberDeclaration) return Modality.FINAL
|
||||
if (this !is FirCallableDeclaration) return Modality.FINAL
|
||||
if (isOverride) {
|
||||
if (containingFirClass.modality != Modality.FINAL) return Modality.OPEN
|
||||
}
|
||||
@@ -126,7 +126,7 @@ internal class FirIdeRenderer private constructor(
|
||||
}
|
||||
|
||||
private fun StringBuilder.renderModalityForCallable(
|
||||
callable: FirCallableMemberDeclaration,
|
||||
callable: FirCallableDeclaration,
|
||||
containingDeclaration: FirDeclaration?
|
||||
) {
|
||||
val modality = callable.modality ?: return
|
||||
@@ -137,7 +137,7 @@ internal class FirIdeRenderer private constructor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun StringBuilder.renderOverride(callableMember: FirCallableMemberDeclaration) {
|
||||
private fun StringBuilder.renderOverride(callableMember: FirCallableDeclaration) {
|
||||
if (RendererModifier.OVERRIDE !in options.modifiers) return
|
||||
renderModifier(callableMember.isOverride || options.forceRenderingOverrideModifier, "override")
|
||||
}
|
||||
|
||||
+6
-6
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.getImplementationStatus
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.isVisibleInClass
|
||||
import org.jetbrains.kotlin.fir.containingClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.originalForIntersectionOverrideAttr
|
||||
import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
||||
@@ -35,7 +35,7 @@ class KtFirOverrideInfoProvider(
|
||||
require(memberSymbol is KtFirSymbol<*>)
|
||||
require(classSymbol is KtFirSymbol<*>)
|
||||
return memberSymbol.firRef.withFir { memberFir ->
|
||||
if (memberFir !is FirCallableMemberDeclaration) return@withFir false
|
||||
if (memberFir !is FirCallableDeclaration) return@withFir false
|
||||
classSymbol.firRef.withFir inner@{ parentClassFir ->
|
||||
if (parentClassFir !is FirClass) return@inner false
|
||||
memberFir.isVisibleInClass(parentClassFir)
|
||||
@@ -47,7 +47,7 @@ class KtFirOverrideInfoProvider(
|
||||
require(memberSymbol is KtFirSymbol<*>)
|
||||
require(parentClassSymbol is KtFirSymbol<*>)
|
||||
return memberSymbol.firRef.withFir { memberFir ->
|
||||
if (memberFir !is FirCallableMemberDeclaration) return@withFir null
|
||||
if (memberFir !is FirCallableDeclaration) return@withFir null
|
||||
parentClassSymbol.firRef.withFir inner@{ parentClassFir ->
|
||||
if (parentClassFir !is FirClass) return@inner null
|
||||
memberFir.getImplementationStatus(SessionHolderImpl(firAnalysisSession.rootModuleSession, ScopeSession()), parentClassFir)
|
||||
@@ -58,7 +58,7 @@ class KtFirOverrideInfoProvider(
|
||||
override fun getOriginalContainingClassForOverride(symbol: KtCallableSymbol): KtClassOrObjectSymbol? {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
return symbol.firRef.withFir { firDeclaration ->
|
||||
if (firDeclaration !is FirCallableMemberDeclaration) return@withFir null
|
||||
if (firDeclaration !is FirCallableDeclaration) return@withFir null
|
||||
with(analysisSession) {
|
||||
getOriginalOverriddenSymbol(firDeclaration)?.containingClass()?.classId?.getCorrespondingToplevelClassOrObjectSymbol()
|
||||
}
|
||||
@@ -68,7 +68,7 @@ class KtFirOverrideInfoProvider(
|
||||
override fun getOriginalOverriddenSymbol(symbol: KtCallableSymbol): KtCallableSymbol? {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
return symbol.firRef.withFir { firDeclaration ->
|
||||
if (firDeclaration !is FirCallableMemberDeclaration) return@withFir null
|
||||
if (firDeclaration !is FirCallableDeclaration) return@withFir null
|
||||
with(analysisSession) {
|
||||
getOriginalOverriddenSymbol(firDeclaration)
|
||||
?.buildSymbol((analysisSession as KtFirAnalysisSession).firSymbolBuilder) as KtCallableSymbol?
|
||||
@@ -76,7 +76,7 @@ class KtFirOverrideInfoProvider(
|
||||
}
|
||||
}
|
||||
|
||||
private fun getOriginalOverriddenSymbol(member: FirCallableMemberDeclaration): FirCallableMemberDeclaration? {
|
||||
private fun getOriginalOverriddenSymbol(member: FirCallableDeclaration): FirCallableDeclaration? {
|
||||
val originalForSubstitutionOverride = member.originalForSubstitutionOverride
|
||||
if (originalForSubstitutionOverride != null) return getOriginalOverriddenSymbol(originalForSubstitutionOverride)
|
||||
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@ internal fun FirRefWithValidityCheck<FirCallableDeclaration>.receiverTypeAndAnno
|
||||
}
|
||||
}
|
||||
|
||||
internal fun FirRefWithValidityCheck<FirCallableMemberDeclaration>.dispatchReceiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) =
|
||||
internal fun FirRefWithValidityCheck<FirCallableDeclaration>.dispatchReceiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) =
|
||||
withFir { fir ->
|
||||
fir.dispatchReceiverType?.let {
|
||||
builder.typeBuilder.buildKtType(it)
|
||||
|
||||
+5
-5
@@ -73,7 +73,7 @@ internal object FirReferenceResolveHelper {
|
||||
val classLikeDeclaration = ConeClassLikeLookupTagImpl(this).toSymbol(session)?.fir
|
||||
if (classLikeDeclaration is FirRegularClass) {
|
||||
if (calleeReference is FirResolvedNamedReference) {
|
||||
val callee = calleeReference.resolvedSymbol.fir as? FirCallableMemberDeclaration
|
||||
val callee = calleeReference.resolvedSymbol.fir as? FirCallableDeclaration
|
||||
// TODO: check callee owner directly?
|
||||
if (callee !is FirConstructor && callee?.isStatic != true) {
|
||||
classLikeDeclaration.companionObject?.let { return it.buildSymbol(symbolBuilder) }
|
||||
@@ -98,9 +98,9 @@ internal object FirReferenceResolveHelper {
|
||||
syntheticProperty.setter!!.delegate
|
||||
}
|
||||
}
|
||||
else -> symbol.fir as? FirDeclaration
|
||||
else -> symbol.fir
|
||||
}
|
||||
listOfNotNull(fir?.buildSymbol(symbolBuilder))
|
||||
listOfNotNull(fir.buildSymbol(symbolBuilder))
|
||||
}
|
||||
is FirResolvedCallableReference -> {
|
||||
listOfNotNull(resolvedSymbol.fir.buildSymbol(symbolBuilder))
|
||||
@@ -112,7 +112,7 @@ internal object FirReferenceResolveHelper {
|
||||
listOfNotNull((superTypeRef as? FirResolvedTypeRef)?.toTargetSymbol(session, symbolBuilder))
|
||||
}
|
||||
is FirErrorNamedReference -> {
|
||||
getCandidateSymbols().mapNotNull { it.fir.buildSymbol(symbolBuilder) }
|
||||
getCandidateSymbols().map { it.fir.buildSymbol(symbolBuilder) }
|
||||
}
|
||||
else -> emptyList()
|
||||
}
|
||||
@@ -300,7 +300,7 @@ internal object FirReferenceResolveHelper {
|
||||
fir: FirErrorNamedReference,
|
||||
symbolBuilder: KtSymbolByFirBuilder
|
||||
): List<KtSymbol> =
|
||||
getFirSymbolsByErrorNamedReference(fir).mapNotNull { it.fir.buildSymbol(symbolBuilder) }
|
||||
getFirSymbolsByErrorNamedReference(fir).map { it.fir.buildSymbol(symbolBuilder) }
|
||||
|
||||
|
||||
fun getFirSymbolsByErrorNamedReference(
|
||||
|
||||
Reference in New Issue
Block a user