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