[Analysis API] optimize RAM consumption in KtFirSymbol
- remove extra field which can be retrieved via KtFirAnalysisSession ^KTIJ-22749
This commit is contained in:
committed by
Space Team
parent
a9b4f77196
commit
3d3ab5d379
+22
-42
@@ -103,9 +103,9 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
fun buildEnumEntrySymbol(firSymbol: FirEnumEntrySymbol) =
|
||||
symbolsCache.cache(firSymbol) { KtFirEnumEntrySymbol(firSymbol, firResolveSession, this) }
|
||||
symbolsCache.cache(firSymbol) { KtFirEnumEntrySymbol(firSymbol, analysisSession) }
|
||||
|
||||
fun buildFileSymbol(firSymbol: FirFileSymbol) = filesCache.cache(firSymbol) { KtFirFileSymbol(firSymbol, firResolveSession, token) }
|
||||
fun buildFileSymbol(firSymbol: FirFileSymbol) = filesCache.cache(firSymbol) { KtFirFileSymbol(firSymbol, analysisSession) }
|
||||
|
||||
private val packageProvider = project.createPackageProvider(GlobalSearchScope.allScope(project))//todo scope
|
||||
|
||||
@@ -150,24 +150,20 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
fun buildNamedClassOrObjectSymbol(symbol: FirRegularClassSymbol): KtFirNamedClassOrObjectSymbol {
|
||||
return symbolsCache.cache(symbol) { KtFirNamedClassOrObjectSymbol(symbol, firResolveSession, this@KtSymbolByFirBuilder) }
|
||||
return symbolsCache.cache(symbol) { KtFirNamedClassOrObjectSymbol(symbol, analysisSession) }
|
||||
}
|
||||
|
||||
fun buildAnonymousObjectSymbol(symbol: FirAnonymousObjectSymbol): KtAnonymousObjectSymbol {
|
||||
return symbolsCache.cache(symbol) { KtFirAnonymousObjectSymbol(symbol, firResolveSession, this@KtSymbolByFirBuilder) }
|
||||
return symbolsCache.cache(symbol) { KtFirAnonymousObjectSymbol(symbol, analysisSession) }
|
||||
}
|
||||
|
||||
fun buildTypeAliasSymbol(symbol: FirTypeAliasSymbol): KtFirTypeAliasSymbol {
|
||||
return symbolsCache.cache(symbol) { KtFirTypeAliasSymbol(symbol, firResolveSession, this@KtSymbolByFirBuilder) }
|
||||
return symbolsCache.cache(symbol) { KtFirTypeAliasSymbol(symbol, analysisSession) }
|
||||
}
|
||||
|
||||
fun buildTypeParameterSymbol(firSymbol: FirTypeParameterSymbol): KtFirTypeParameterSymbol {
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirTypeParameterSymbol(
|
||||
firSymbol,
|
||||
firResolveSession,
|
||||
this@KtSymbolByFirBuilder
|
||||
)
|
||||
KtFirTypeParameterSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,7 +218,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
check(firSymbol.origin != FirDeclarationOrigin.SamConstructor)
|
||||
return symbolsCache.cache(firSymbol) { KtFirFunctionSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder) }
|
||||
return symbolsCache.cache(firSymbol) { KtFirFunctionSymbol(firSymbol, analysisSession) }
|
||||
}
|
||||
|
||||
fun buildFunctionSignature(firSymbol: FirNamedFunctionSymbol): KtFunctionLikeSignature<KtFirFunctionSymbol> {
|
||||
@@ -244,11 +240,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
|
||||
fun buildAnonymousFunctionSymbol(firSymbol: FirAnonymousFunctionSymbol): KtFirAnonymousFunctionSymbol {
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirAnonymousFunctionSymbol(
|
||||
firSymbol,
|
||||
firResolveSession,
|
||||
this@KtSymbolByFirBuilder
|
||||
)
|
||||
KtFirAnonymousFunctionSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,27 +248,23 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
val originalFirSymbol = firSymbol.fir.originalConstructorIfTypeAlias?.symbol ?: firSymbol
|
||||
val unwrapped = originalFirSymbol.originalIfFakeOverride() ?: originalFirSymbol
|
||||
return symbolsCache.cache(unwrapped) {
|
||||
KtFirConstructorSymbol(unwrapped, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirConstructorSymbol(unwrapped, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildSamConstructorSymbol(firSymbol: FirNamedFunctionSymbol): KtFirSamConstructorSymbol {
|
||||
check(firSymbol.origin == FirDeclarationOrigin.SamConstructor)
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirSamConstructorSymbol(
|
||||
firSymbol,
|
||||
firResolveSession,
|
||||
this@KtSymbolByFirBuilder
|
||||
)
|
||||
KtFirSamConstructorSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildPropertyAccessorSymbol(firSymbol: FirPropertyAccessorSymbol): KtFunctionLikeSymbol {
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
if (firSymbol.isGetter) {
|
||||
KtFirPropertyGetterSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirPropertyGetterSymbol(firSymbol, analysisSession)
|
||||
} else {
|
||||
KtFirPropertySetterSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirPropertySetterSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -321,7 +309,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirKotlinPropertySymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirKotlinPropertySymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,31 +325,31 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
fun buildLocalVariableSymbol(firSymbol: FirPropertySymbol): KtFirLocalVariableSymbol {
|
||||
checkRequirementForBuildingSymbol<KtFirLocalVariableSymbol>(firSymbol, firSymbol.isLocal)
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirLocalVariableSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirLocalVariableSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildSyntheticJavaPropertySymbol(firSymbol: FirSyntheticPropertySymbol): KtFirSyntheticJavaPropertySymbol {
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirSyntheticJavaPropertySymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirSyntheticJavaPropertySymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildValueParameterSymbol(firSymbol: FirValueParameterSymbol): KtValueParameterSymbol {
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirValueParameterSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirValueParameterSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun buildFieldSymbol(firSymbol: FirFieldSymbol): KtFirJavaFieldSymbol {
|
||||
checkRequirementForBuildingSymbol<KtFirJavaFieldSymbol>(firSymbol, firSymbol.fir.isJavaFieldOrSubstitutionOverrideOfJavaField())
|
||||
return symbolsCache.cache(firSymbol) { KtFirJavaFieldSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder) }
|
||||
return symbolsCache.cache(firSymbol) { KtFirJavaFieldSymbol(firSymbol, analysisSession) }
|
||||
}
|
||||
|
||||
fun buildBackingFieldSymbol(firSymbol: FirBackingFieldSymbol): KtFirBackingFieldSymbol {
|
||||
return backingFieldCache.cache(firSymbol) {
|
||||
KtFirBackingFieldSymbol(firSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirBackingFieldSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -408,36 +396,28 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
fun buildGetterSymbol(firSymbol: FirPropertyAccessorSymbol): KtFirPropertyGetterSymbol {
|
||||
checkRequirementForBuildingSymbol<KtFirPropertyGetterSymbol>(firSymbol, firSymbol.isGetter)
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirPropertyGetterSymbol(
|
||||
firSymbol,
|
||||
firResolveSession,
|
||||
this@KtSymbolByFirBuilder
|
||||
)
|
||||
KtFirPropertyGetterSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildSetterSymbol(firSymbol: FirPropertyAccessorSymbol): KtFirPropertySetterSymbol {
|
||||
checkRequirementForBuildingSymbol<KtFirPropertySetterSymbol>(firSymbol, firSymbol.isSetter)
|
||||
return symbolsCache.cache(firSymbol) {
|
||||
KtFirPropertySetterSymbol(
|
||||
firSymbol,
|
||||
firResolveSession,
|
||||
this@KtSymbolByFirBuilder
|
||||
)
|
||||
KtFirPropertySetterSymbol(firSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
|
||||
fun buildExtensionReceiverSymbol(firCallableSymbol: FirCallableSymbol<*>): KtReceiverParameterSymbol? {
|
||||
if (firCallableSymbol.fir.receiverParameter == null) return null
|
||||
return extensionReceiverSymbolsCache.cache(firCallableSymbol) {
|
||||
KtFirReceiverParameterSymbol(firCallableSymbol, firResolveSession, this@KtSymbolByFirBuilder)
|
||||
KtFirReceiverParameterSymbol(firCallableSymbol, analysisSession)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inner class AnonymousInitializerBuilder {
|
||||
fun buildClassInitializer(firSymbol: FirAnonymousInitializerSymbol): KtClassInitializerSymbol {
|
||||
return symbolsCache.cache(firSymbol) { KtFirClassInitializerSymbol(firSymbol, firResolveSession, token) }
|
||||
return symbolsCache.cache(firSymbol) { KtFirClassInitializerSymbol(firSymbol, analysisSession) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-8
@@ -9,11 +9,10 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousFunctionSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol
|
||||
@@ -22,26 +21,23 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPoin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.resolve.getHasStableParameterNames
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.isExtension
|
||||
|
||||
internal class KtFirAnonymousFunctionSymbol(
|
||||
override val firSymbol: FirAnonymousFunctionSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtAnonymousFunctionSymbol(), KtFirSymbol<FirAnonymousFunctionSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
|
||||
override val psi: PsiElement? by cached { firSymbol.fir.findPsi(firSymbol.fir.moduleData.session) }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val returnType: KtType get() = withValidityAssertion { firSymbol.returnType(builder) }
|
||||
override val returnType: KtType get() = withValidityAssertion { firSymbol.returnType(analysisSession.firSymbolBuilder) }
|
||||
override val receiverParameter: KtReceiverParameterSymbol? get() = withValidityAssertion { firSymbol.receiver(builder) }
|
||||
|
||||
override val contextReceivers: List<KtContextReceiver> by cached { firSymbol.createContextReceivers(builder) }
|
||||
|
||||
+3
-7
@@ -8,32 +8,28 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirEnumEntryInitializerSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousObjectSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol
|
||||
|
||||
internal class KtFirAnonymousObjectSymbol(
|
||||
override val firSymbol: FirAnonymousObjectSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtAnonymousObjectSymbol(), KtFirSymbol<FirAnonymousObjectSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val superTypes: List<KtType> by cached { firSymbol.superTypesList(builder) }
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.name.StandardClassIds
|
||||
|
||||
object KtFirArrayOfSymbolProvider {
|
||||
internal fun KtFirAnalysisSession.arrayOfSymbol(identifier: Name): KtFirFunctionSymbol? {
|
||||
val firSymbol = firResolveSession.useSiteFirSession.symbolProvider.getTopLevelCallableSymbols(kotlinPackage, identifier).firstOrNull {
|
||||
val firSymbol = useSiteSession.symbolProvider.getTopLevelCallableSymbols(kotlinPackage, identifier).firstOrNull {
|
||||
/* choose (for byte array)
|
||||
* public fun byteArrayOf(vararg elements: kotlin.Byte): kotlin.ByteArray
|
||||
*/
|
||||
|
||||
+3
-7
@@ -7,30 +7,26 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirBackingFieldSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtBackingFieldSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtKotlinPropertySymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
|
||||
|
||||
internal class KtFirBackingFieldSymbol(
|
||||
override val firSymbol: FirBackingFieldSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtBackingFieldSymbol(), KtFirSymbol<FirBackingFieldSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val origin: KtSymbolOrigin get() = withValidityAssertion { super<KtBackingFieldSymbol>.origin }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val returnType: KtType get() = withValidityAssertion { firSymbol.returnType(builder) }
|
||||
|
||||
+2
-4
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtClassInitializerSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
@@ -19,13 +19,11 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousInitializerSymbol
|
||||
|
||||
internal class KtFirClassInitializerSymbol(
|
||||
override val firSymbol: FirAnonymousInitializerSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
override val token: KtLifetimeToken,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtClassInitializerSymbol(), KtFirSymbol<FirAnonymousInitializerSymbol> {
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
|
||||
+3
-7
@@ -7,14 +7,13 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.FirCallableSignature
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirConstructorSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
@@ -23,7 +22,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPoin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||
@@ -33,10 +31,8 @@ import org.jetbrains.kotlin.name.ClassId
|
||||
|
||||
internal class KtFirConstructorSymbol(
|
||||
override val firSymbol: FirConstructorSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtConstructorSymbol(), KtFirSymbol<FirConstructorSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val returnType: KtType get() = withValidityAssertion { firSymbol.returnType(builder) }
|
||||
@@ -53,7 +49,7 @@ internal class KtFirConstructorSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+3
-7
@@ -8,19 +8,17 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirEnumEntrySymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtEnumEntrySymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -28,15 +26,13 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirEnumEntrySymbol(
|
||||
override val firSymbol: FirEnumEntrySymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtEnumEntrySymbol(), KtFirSymbol<FirEnumEntrySymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
|
||||
+3
-5
@@ -7,22 +7,20 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFileSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithDeclarations
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
|
||||
|
||||
internal class KtFirFileSymbol(
|
||||
override val firSymbol: FirFileSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
override val token: KtLifetimeToken,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtFileSymbol(), KtSymbolWithDeclarations, KtFirSymbol<FirFileSymbol> {
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
@@ -35,7 +33,7 @@ internal class KtFirFileSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+3
-7
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.contracts.description.KtContractEffectDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.contracts.coneEffectDeclarationToAnalysisApi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirTopLevelFunct
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.util.kotlinFunctionInvokeCallableIds
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol
|
||||
@@ -30,7 +29,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.UnsupportedSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||
@@ -44,10 +42,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirFunctionSymbol(
|
||||
override val firSymbol: FirNamedFunctionSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtFunctionSymbol(), KtFirSymbol<FirNamedFunctionSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
|
||||
@@ -74,7 +70,7 @@ internal class KtFirFunctionSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+3
-5
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirJavaFieldSymbolPointer
|
||||
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtJavaFieldSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isStatic
|
||||
@@ -31,15 +30,14 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirJavaFieldSymbol(
|
||||
override val firSymbol: FirFieldSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtJavaFieldSymbol(), KtFirSymbol<FirFieldSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val isVal: Boolean get() = withValidityAssertion { firSymbol.fir.isVal }
|
||||
|
||||
+4
-5
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.KtInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
@@ -39,10 +40,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirKotlinPropertySymbol(
|
||||
override val firSymbol: FirPropertySymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtKotlinPropertySymbol(), KtFirSymbol<FirPropertySymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
init {
|
||||
assert(!firSymbol.isLocal)
|
||||
check(firSymbol !is FirSyntheticPropertySymbol)
|
||||
@@ -63,7 +62,7 @@ internal class KtFirKotlinPropertySymbol(
|
||||
override val contextReceivers: List<KtContextReceiver> by cached { firSymbol.createContextReceivers(builder) }
|
||||
|
||||
override val isExtension: Boolean get() = withValidityAssertion { firSymbol.isExtension }
|
||||
override val initializer: KtInitializerValue? by cached { firSymbol.getKtConstantInitializer(firResolveSession) }
|
||||
override val initializer: KtInitializerValue? by cached { firSymbol.getKtConstantInitializer(analysisSession.firResolveSession) }
|
||||
|
||||
override val symbolKind: KtSymbolKind
|
||||
get() = withValidityAssertion {
|
||||
@@ -79,7 +78,7 @@ internal class KtFirKotlinPropertySymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token
|
||||
)
|
||||
}
|
||||
|
||||
+3
-7
@@ -8,11 +8,10 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtLocalVariableSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
@@ -20,26 +19,23 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPoin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirLocalVariableSymbol(
|
||||
override val firSymbol: FirPropertySymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtLocalVariableSymbol(),
|
||||
KtFirSymbol<FirPropertySymbol> {
|
||||
init {
|
||||
assert(firSymbol.isLocal)
|
||||
}
|
||||
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val isVal: Boolean get() = withValidityAssertion { firSymbol.isVal }
|
||||
|
||||
+3
-5
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirClassLikeSymbolPointer
|
||||
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.UnsupportedSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
@@ -37,8 +36,7 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirNamedClassOrObjectSymbol(
|
||||
override val firSymbol: FirRegularClassSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtNamedClassOrObjectSymbol(), KtFirSymbol<FirRegularClassSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
@@ -71,7 +69,7 @@ internal class KtFirNamedClassOrObjectSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+3
-5
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
||||
@@ -33,8 +32,7 @@ import org.jetbrains.kotlin.name.CallableId
|
||||
|
||||
internal class KtFirPropertyGetterSymbol(
|
||||
override val firSymbol: FirPropertyAccessorSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtPropertyGetterSymbol(), KtFirSymbol<FirPropertyAccessorSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
init {
|
||||
@@ -63,7 +61,7 @@ internal class KtFirPropertyGetterSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+5
-9
@@ -8,13 +8,12 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.pointers.KtPropertyAccessorSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySetterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol
|
||||
@@ -22,7 +21,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
@@ -37,10 +35,8 @@ import org.jetbrains.kotlin.name.CallableId
|
||||
|
||||
internal class KtFirPropertySetterSymbol(
|
||||
override val firSymbol: FirPropertyAccessorSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtPropertySetterSymbol(), KtFirSymbol<FirPropertyAccessorSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
|
||||
init {
|
||||
require(firSymbol.isSetter)
|
||||
@@ -55,10 +51,10 @@ internal class KtFirPropertySetterSymbol(
|
||||
if (firSymbol.isOverride) return true
|
||||
val propertySymbol = firSymbol.fir.propertySymbol
|
||||
if (!propertySymbol.isOverride) return false
|
||||
val session = firResolveSession.useSiteFirSession
|
||||
val session = analysisSession.useSiteSession
|
||||
val containingClassScope = firSymbol.dispatchReceiverType?.scope(
|
||||
session,
|
||||
firResolveSession.getScopeSessionFor(session),
|
||||
analysisSession.getScopeSessionFor(session),
|
||||
FakeOverrideTypeCalculator.DoNothing,
|
||||
requiredPhase = FirResolvePhase.STATUS,
|
||||
) ?: return false
|
||||
@@ -74,7 +70,7 @@ internal class KtFirPropertySetterSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+6
-8
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForReceiverParameter
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirReceiverParameterSymbolPointer
|
||||
@@ -21,15 +21,13 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
|
||||
internal class KtFirReceiverParameterSymbol(
|
||||
val firSymbol: FirCallableSymbol<*>,
|
||||
val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
val analysisSession: KtFirAnalysisSession,
|
||||
) : KtReceiverParameterSymbol(), KtLifetimeOwner {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val token: KtLifetimeToken get() = analysisSession.token
|
||||
override val psi: PsiElement? by cached { firSymbol.fir.receiverParameter?.typeRef?.findPsi(firSymbol.fir.moduleData.session) }
|
||||
|
||||
init {
|
||||
@@ -37,10 +35,10 @@ internal class KtFirReceiverParameterSymbol(
|
||||
}
|
||||
|
||||
override val type: KtType by cached {
|
||||
firSymbol.receiverType(builder) ?: error("$firSymbol doesn't have an extension receiver.")
|
||||
firSymbol.receiverType(analysisSession.firSymbolBuilder) ?: error("$firSymbol doesn't have an extension receiver.")
|
||||
}
|
||||
|
||||
override val owningCallableSymbol: KtCallableSymbol by cached { builder.callableBuilder.buildCallableSymbol(firSymbol) }
|
||||
override val owningCallableSymbol: KtCallableSymbol by cached { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(firSymbol) }
|
||||
|
||||
override val origin: KtSymbolOrigin = withValidityAssertion { firSymbol.fir.ktSymbolOrigin() }
|
||||
|
||||
@@ -50,6 +48,6 @@ internal class KtFirReceiverParameterSymbol(
|
||||
}
|
||||
|
||||
override val annotationsList: KtAnnotationsList by cached {
|
||||
KtFirAnnotationListForReceiverParameter.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForReceiverParameter.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-5
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirSamConstructorSymbolPointer
|
||||
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.resolve.getHasStableParameterNames
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.isExtension
|
||||
@@ -32,15 +31,14 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirSamConstructorSymbol(
|
||||
override val firSymbol: FirNamedFunctionSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtSamConstructorSymbol(), KtFirSymbol<FirNamedFunctionSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
|
||||
+6
-3
@@ -6,14 +6,16 @@
|
||||
package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.firSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeOwner
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment
|
||||
@@ -33,9 +35,10 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
|
||||
internal interface KtFirSymbol<out S : FirBasedSymbol<*>> : KtSymbol, KtLifetimeOwner {
|
||||
val firSymbol: S
|
||||
val analysisSession: KtFirAnalysisSession
|
||||
val builder: KtSymbolByFirBuilder get() = analysisSession.firSymbolBuilder
|
||||
|
||||
val firResolveSession: LLFirResolveSession
|
||||
|
||||
override val token: KtLifetimeToken get() = analysisSession.token
|
||||
override val origin: KtSymbolOrigin get() = withValidityAssertion { firSymbol.fir.ktSymbolOrigin() }
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ internal class KtFirSymbolProvider(
|
||||
|
||||
private fun KtClassOrObject.resolveToFirClassLikeSymbol(): FirClassSymbol<*> {
|
||||
return when (val firClassLike = resolveToFirSymbolOfType<FirClassLikeSymbol<*>>(firResolveSession)) {
|
||||
is FirTypeAliasSymbol -> firClassLike.fullyExpandedClass(firResolveSession.useSiteFirSession)
|
||||
is FirTypeAliasSymbol -> firClassLike.fullyExpandedClass(analysisSession.useSiteSession)
|
||||
?: buildErrorWithAttachment("${firClassLike.fir::class} should be expanded to the expected type alias") {
|
||||
withFirSymbolEntry("firClassLikeSymbol", firClassLike)
|
||||
withPsiEntry("ktClassOrObject", this@resolveToFirClassLikeSymbol)
|
||||
|
||||
+4
-8
@@ -8,18 +8,16 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.KtInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirJavaSyntheticPropertySymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
@@ -35,10 +33,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirSyntheticJavaPropertySymbol(
|
||||
override val firSymbol: FirSyntheticPropertySymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtSyntheticJavaPropertySymbol(), KtFirSymbol<FirSyntheticPropertySymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val isVal: Boolean get() = withValidityAssertion { firSymbol.isVal }
|
||||
@@ -53,7 +49,7 @@ internal class KtFirSyntheticJavaPropertySymbol(
|
||||
|
||||
override val isExtension: Boolean get() = withValidityAssertion { firSymbol.isExtension }
|
||||
|
||||
override val initializer: KtInitializerValue? by cached { firSymbol.getKtConstantInitializer(firResolveSession) }
|
||||
override val initializer: KtInitializerValue? by cached { firSymbol.getKtConstantInitializer(analysisSession.firResolveSession) }
|
||||
|
||||
override val modality: Modality get() = withValidityAssertion { firSymbol.modality ?: firSymbol.invalidModalityError() }
|
||||
override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility }
|
||||
@@ -61,7 +57,7 @@ internal class KtFirSyntheticJavaPropertySymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token
|
||||
)
|
||||
}
|
||||
|
||||
+3
-8
@@ -8,12 +8,11 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirClassLikeSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
@@ -22,7 +21,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.UnsupportedSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||
@@ -32,11 +30,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirTypeAliasSymbol(
|
||||
override val firSymbol: FirTypeAliasSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtTypeAliasSymbol(), KtFirSymbol<FirTypeAliasSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
override val classIdIfNonLocal: ClassId? get() = withValidityAssertion { firSymbol.getClassIdIfNonLocal() }
|
||||
@@ -54,7 +49,7 @@ internal class KtFirTypeAliasSymbol(
|
||||
override val expandedType: KtType by cached { builder.typeBuilder.buildKtType(firSymbol.resolvedExpandedTypeRef) }
|
||||
|
||||
override val annotationsList: KtAnnotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val symbolKind: KtSymbolKind get() = withValidityAssertion { getSymbolKind() }
|
||||
|
||||
+3
-5
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirTypeParameterSymbolPointer
|
||||
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.typeParameterSymbols
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.fir.types.isNullableAny
|
||||
@@ -29,15 +28,14 @@ import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
internal class KtFirTypeParameterSymbol(
|
||||
override val firSymbol: FirTypeParameterSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtTypeParameterSymbol(), KtFirSymbol<FirTypeParameterSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val annotationsList: KtAnnotationsList
|
||||
get() = withValidityAssertion {
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, firResolveSession.useSiteFirSession, token)
|
||||
KtFirAnnotationListForDeclaration.create(firSymbol, analysisSession.useSiteSession, token)
|
||||
}
|
||||
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
|
||||
+3
-7
@@ -8,20 +8,18 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirValueParameterSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.fir.utils.firSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionLikeSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtKotlinPropertySymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.fir.correspondingProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.renderWithType
|
||||
@@ -31,10 +29,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
internal class KtFirValueParameterSymbol(
|
||||
override val firSymbol: FirValueParameterSymbol,
|
||||
override val firResolveSession: LLFirResolveSession,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
) : KtValueParameterSymbol(), KtFirSymbol<FirValueParameterSymbol> {
|
||||
override val token: KtLifetimeToken get() = builder.token
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override val name: Name get() = withValidityAssertion { firSymbol.name }
|
||||
@@ -67,7 +63,7 @@ internal class KtFirValueParameterSymbol(
|
||||
override val annotationsList by cached {
|
||||
KtFirAnnotationListForDeclaration.create(
|
||||
firSymbol,
|
||||
firResolveSession.useSiteFirSession,
|
||||
analysisSession.useSiteSession,
|
||||
token,
|
||||
)
|
||||
}
|
||||
|
||||
+1
-1
@@ -37,5 +37,5 @@ internal abstract class KtTopLevelCallableSymbolPointer<S : KtCallableSymbol>(
|
||||
}
|
||||
|
||||
private fun KtFirAnalysisSession.getCallableSymbols(callableId: CallableId) =
|
||||
firResolveSession.useSiteFirSession.symbolProvider.getTopLevelCallableSymbols(callableId.packageName, callableId.callableName)
|
||||
useSiteSession.symbolProvider.getTopLevelCallableSymbols(callableId.packageName, callableId.callableName)
|
||||
|
||||
|
||||
+1
-1
@@ -56,4 +56,4 @@ internal inline fun <reified D : FirCallableDeclaration> Collection<FirCallableS
|
||||
}
|
||||
|
||||
internal fun KtFirAnalysisSession.getClassLikeSymbol(classId: ClassId) =
|
||||
firResolveSession.useSiteFirSession.symbolProvider.getClassLikeSymbolByClassId(classId)?.fir
|
||||
useSiteSession.symbolProvider.getClassLikeSymbolByClassId(classId)?.fir
|
||||
|
||||
Reference in New Issue
Block a user