[FIR] Remove unneeded symbol.fir accesses

This commit is contained in:
Nikolay Lunyak
2024-01-11 14:32:37 +02:00
committed by Space Team
parent 965d8d2fd5
commit 95989fc3e2
19 changed files with 97 additions and 85 deletions
@@ -50,6 +50,10 @@ val FirDeclaration.isNonLocal
val FirCallableDeclaration.isExtension get() = receiverParameter != null
val FirBasedSymbol<*>.isMemberDeclaration: Boolean
// Accessing `fir` is ok, because we don't really use it
get() = fir is FirMemberDeclaration
val FirBasedSymbol<*>.memberDeclarationNameOrNull: Name?
// Accessing `fir` is ok, because `nameOrSpecialName` only accesses names
get() = (fir as? FirMemberDeclaration)?.nameOrSpecialName
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.mpp.CallableSymbolMarker
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
abstract class FirCallableSymbol<D : FirCallableDeclaration> : FirBasedSymbol<D>(), CallableSymbolMarker {
abstract val callableId: CallableId
@@ -76,6 +77,10 @@ abstract class FirCallableSymbol<D : FirCallableDeclaration> : FirBasedSymbol<D>
val name: Name
get() = callableId.callableName
val containerSource: DeserializedContainerSource?
// This is ok, because containerSource should be set during fir creation
get() = fir.containerSource
fun getDeprecation(languageVersionSettings: LanguageVersionSettings): DeprecationsPerUseSite? {
lazyResolveToPhase(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS)
return fir.deprecationsProvider.getDeprecationsInfo(languageVersionSettings)