FIR: Derive FirMemberDeclaration from FirAnnotatedDeclaration

It's necessary to have the sane logic that FirMemberDeclaration is a subtype of FirDeclaration
The only kind of controversial change here is making FirAnonymousObject
also be FirMemberDeclaration, thus having its own declaration status
This commit is contained in:
Denis.Zharkov
2021-10-13 15:58:27 +03:00
committed by TeamCityServer
parent 603655d63f
commit f441024fd4
18 changed files with 43 additions and 37 deletions
@@ -20,10 +20,10 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.getElementTextInCont
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.psi.KtDeclaration
internal fun <F> KtFirSymbol<F>.getModality(
internal fun KtFirSymbol<FirMemberDeclaration>.getModality(
phase: FirResolvePhase = FirResolvePhase.STATUS,
defaultModality: Modality? = null
): Modality where F : FirDeclaration, F : FirMemberDeclaration {
): Modality {
return firRef.withFir(phase) { fir ->
fir.modality
?: defaultModality
@@ -42,9 +42,9 @@ private fun FirDeclaration.invalidModalityError(): Nothing {
}
internal fun <F> KtFirSymbol<F>.getVisibility(
internal fun KtFirSymbol<FirMemberDeclaration>.getVisibility(
phase: FirResolvePhase = FirResolvePhase.STATUS
): Visibility where F : FirMemberDeclaration, F : FirDeclaration =
): Visibility =
firRef.withFir(phase) { fir -> fir.visibility }
internal fun KtFirSymbol<FirCallableDeclaration>.getCallableIdIfNonLocal(): CallableId? =