From 7b70cf3ae06b37e2811a9c9b8c6f9176926e853c Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 4 May 2022 00:06:43 +0200 Subject: [PATCH] [fir low level, refactoring] rename rootModule -> useSiteModule --- .../analysis/api/fir/KtFirAnalysisSession.kt | 10 +++++----- .../analysis/api/fir/KtSymbolByFirBuilder.kt | 4 ++-- .../KtFirAnalysisSessionComponent.kt | 6 +++--- .../api/fir/components/KtFirCallResolver.kt | 10 +++++----- .../KtFirCompletionCandidateChecker.kt | 2 +- .../components/KtFirExpressionInfoProvider.kt | 2 +- .../components/KtFirExpressionTypeProvider.kt | 2 +- .../api/fir/components/KtFirImportOptimizer.kt | 2 +- .../fir/components/KtFirInheritorsProvider.kt | 2 +- .../api/fir/components/KtFirJvmTypeMapper.kt | 2 +- .../fir/components/KtFirReferenceShortener.kt | 2 +- .../api/fir/components/KtFirSamResolver.kt | 2 +- .../api/fir/components/KtFirScopeProvider.kt | 12 ++++++------ .../KtFirSymbolDeclarationRendererProvider.kt | 2 +- .../fir/components/KtFirTypeInfoProvider.kt | 6 +++--- .../api/fir/components/KtFirTypeProvider.kt | 8 ++++---- .../references/FirReferenceResolveHelper.kt | 2 +- .../fir/symbols/KtFirAnonymousObjectSymbol.kt | 2 +- .../fir/symbols/KtFirArrayOfSymbolProvider.kt | 2 +- .../api/fir/symbols/KtFirConstructorSymbol.kt | 2 +- .../api/fir/symbols/KtFirFileSymbol.kt | 2 +- .../api/fir/symbols/KtFirFunctionSymbol.kt | 2 +- .../fir/symbols/KtFirKotlinPropertySymbol.kt | 2 +- .../symbols/KtFirNamedClassOrObjectSymbol.kt | 2 +- .../fir/symbols/KtFirOverrideInfoProvider.kt | 2 +- .../fir/symbols/KtFirPropertyGetterSymbol.kt | 2 +- .../fir/symbols/KtFirPropertySetterSymbol.kt | 2 +- .../KtFirSyntheticJavaPropertySymbol.kt | 2 +- .../api/fir/symbols/KtFirTypeAliasSymbol.kt | 2 +- .../fir/symbols/KtFirValueParameterSymbol.kt | 2 +- .../pointers/KtFirMemberSymbolPointer.kt | 2 +- .../KtFirTopLevelCallableSymbolPointer.kt | 2 +- .../api/fir/symbols/pointers/pointerUtils.kt | 2 +- .../analysis/api/fir/utils/ktSymbolUtils.kt | 2 +- .../api/fir/FirModuleResolveStateDepended.kt | 7 ++----- .../level/api/fir/LLFirResolveStateService.kt | 18 ++++++++---------- .../api/fir/api/LLFirModuleResolveState.kt | 11 ++--------- .../api/LowLevelFirApiFacadeForResolveOnAir.kt | 2 +- ...ibrarySourceResolvableModuleResolveState.kt | 6 ++---- .../state/LLFirResolvableModuleResolveState.kt | 4 ++-- .../fir/state/LLFirSourceModuleResolveState.kt | 2 +- .../fir/AbstractFirLazyBodiesCalculatorTest.kt | 2 +- .../based/AbstractCompilerBasedTestForFir.kt | 2 +- 43 files changed, 75 insertions(+), 89 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSession.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSession.kt index 692b3e1ab4f..5ed400b09f5 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSession.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSession.kt @@ -36,7 +36,7 @@ private constructor( private val mode: AnalysisSessionMode, ) : KtAnalysisSession(token) { - override val useSiteModule: KtModule get() = firResolveState.module + override val useSiteModule: KtModule get() = firResolveState.useSiteKtModule private enum class AnalysisSessionMode { REGULAR, @@ -58,7 +58,7 @@ private constructor( override val scopeProviderImpl by threadLocal { KtFirScopeProvider(this, firSymbolBuilder, project, firResolveState, token) } override val symbolProviderImpl = - KtFirSymbolProvider(this, firResolveState.rootModuleSession.symbolProvider, firResolveState, firSymbolBuilder, token) + KtFirSymbolProvider(this, firResolveState.useSiteFirSession.symbolProvider, firResolveState, firSymbolBuilder, token) override val completionCandidateCheckerImpl = KtFirCompletionCandidateChecker(this, token) @@ -119,9 +119,9 @@ private constructor( ) } - val rootModuleSession: FirSession get() = firResolveState.rootModuleSession - val firSymbolProvider: FirSymbolProvider get() = rootModuleSession.symbolProvider - val targetPlatform: TargetPlatform get() = rootModuleSession.moduleData.platform + val useSiteSession: FirSession get() = firResolveState.useSiteFirSession + val firSymbolProvider: FirSymbolProvider get() = useSiteSession.symbolProvider + val targetPlatform: TargetPlatform get() = useSiteSession.moduleData.platform fun getScopeSessionFor(session: FirSession): ScopeSession = firResolveState.getScopeSessionFor(session) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index ed0a0bce2db..6f1538e8a95 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -63,8 +63,8 @@ internal class KtSymbolByFirBuilder private constructor( ) : ValidityTokenOwner { private val resolveState by weakRef(resolveState) - private val firProvider get() = resolveState.rootModuleSession.symbolProvider - val rootSession: FirSession = resolveState.rootModuleSession + private val firProvider get() = resolveState.useSiteFirSession.symbolProvider + val rootSession: FirSession = resolveState.useSiteFirSession val classifierBuilder = ClassifierSymbolBuilder() val functionLikeBuilder = FunctionLikeSymbolBuilder() diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirAnalysisSessionComponent.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirAnalysisSessionComponent.kt index 30f4989f32a..db39b9ce2e1 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirAnalysisSessionComponent.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirAnalysisSessionComponent.kt @@ -39,7 +39,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs internal interface KtFirAnalysisSessionComponent { val analysisSession: KtFirAnalysisSession - val rootModuleSession: FirSession get() = analysisSession.firResolveState.rootModuleSession + val rootModuleSession: FirSession get() = analysisSession.firResolveState.useSiteFirSession val typeContext: ConeInferenceContext get() = rootModuleSession.typeContext val firSymbolBuilder get() = analysisSession.firSymbolBuilder val firResolveState get() = analysisSession.firResolveState @@ -54,7 +54,7 @@ internal interface KtFirAnalysisSessionComponent { qualifiedAccessSource: KtSourceElement?, diagnosticCache: MutableList ): KtDiagnosticWithPsi<*>? { - val firDiagnostic = toFirDiagnostics(analysisSession.rootModuleSession, source, qualifiedAccessSource).firstOrNull() ?: return null + val firDiagnostic = toFirDiagnostics(analysisSession.useSiteSession, source, qualifiedAccessSource).firstOrNull() ?: return null diagnosticCache += firDiagnostic check(firDiagnostic is KtPsiDiagnostic) return firDiagnostic.asKtDiagnostic() @@ -76,7 +76,7 @@ internal interface KtFirAnalysisSessionComponent { fun createTypeCheckerContext(): TypeCheckerState { // TODO use correct session here, - return analysisSession.firResolveState.rootModuleSession.typeContext.newTypeCheckerState( + return analysisSession.firResolveState.useSiteFirSession.typeContext.newTypeCheckerState( errorTypesEqualToAnything = true, stubTypesEqualToAnything = true ) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt index 03606e35b15..635ddef5c05 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt @@ -69,7 +69,7 @@ internal class KtFirCallResolver( private val diagnosticCache = mutableListOf() private val equalsSymbolInAny: FirNamedFunctionSymbol by lazy(LazyThreadSafetyMode.PUBLICATION) { - val session = analysisSession.rootModuleSession + val session = analysisSession.useSiteSession val scope = session.declaredMemberScope(session.builtinTypes.anyType.toRegularClassSymbol(session)!!) lateinit var result: FirNamedFunctionSymbol scope.processFunctionsByName(EQUALS) { @@ -771,7 +771,7 @@ internal class KtFirCallResolver( } val calleeName = originalFunctionCall.calleeOrCandidateName ?: return emptyList() - val candidates = AllCandidatesResolver(analysisSession.rootModuleSession).getAllCandidates( + val candidates = AllCandidatesResolver(analysisSession.useSiteSession).getAllCandidates( analysisSession.firResolveState, originalFunctionCall, calleeName, @@ -902,7 +902,7 @@ internal class KtFirCallResolver( FirOperation.EQ, FirOperation.NOT_EQ -> { val equalsSymbolInAny = equalsSymbolInAny val leftOperand = arguments.firstOrNull() ?: return null - val session = analysisSession.rootModuleSession + val session = analysisSession.useSiteSession val classSymbol = leftOperand.typeRef.coneType.fullyExpandedType(session).toSymbol(session) as? FirClassSymbol<*> val equalsSymbol = classSymbol?.getEqualsSymbol(equalsSymbolInAny) ?: equalsSymbolInAny val ktSignature = equalsSymbol.toKtSignature() @@ -926,8 +926,8 @@ internal class KtFirCallResolver( private fun FirClassSymbol<*>.getEqualsSymbol(equalsSymbolInAny: FirNamedFunctionSymbol): FirNamedFunctionSymbol { val scope = unsubstitutedScope( - analysisSession.rootModuleSession, - analysisSession.getScopeSessionFor(analysisSession.rootModuleSession), + analysisSession.useSiteSession, + analysisSession.getScopeSessionFor(analysisSession.useSiteSession), false ) var equalsSymbol: FirNamedFunctionSymbol? = null diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompletionCandidateChecker.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompletionCandidateChecker.kt index 13d40a01fb7..91a7f95aa21 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompletionCandidateChecker.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompletionCandidateChecker.kt @@ -62,7 +62,7 @@ internal class KtFirCompletionCandidateChecker( ): KtExtensionApplicabilityResult { val file = originalFile.getOrBuildFirFile(firResolveState) val explicitReceiverExpression = possibleExplicitReceiver?.getMatchingFirExpressionForCallReceiver() - val resolver = SingleCandidateResolver(firResolveState.rootModuleSession, file) + val resolver = SingleCandidateResolver(firResolveState.useSiteFirSession, file) val implicitReceivers = getImplicitReceivers(originalFile, nameExpression) for (implicitReceiverValue in implicitReceivers) { val resolutionParameters = ResolutionParameters( diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt index f68d2e8ffcc..45cfd02af1b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt @@ -31,6 +31,6 @@ internal class KtFirExpressionInfoProvider( override fun getWhenMissingCases(whenExpression: KtWhenExpression): List { val firWhenExpression = whenExpression.getOrBuildFirSafe(analysisSession.firResolveState) ?: return emptyList() - return FirWhenExhaustivenessTransformer.computeAllMissingCases(analysisSession.firResolveState.rootModuleSession, firWhenExpression) + return FirWhenExhaustivenessTransformer.computeAllMissingCases(analysisSession.firResolveState.useSiteFirSession, firWhenExpression) } } \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt index 2870bdc545c..f392c3cbaa2 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt @@ -225,7 +225,7 @@ internal class KtFirExpressionTypeProvider( getDefiniteNullability(expression) == DefiniteNullability.DEFINITELY_NOT_NULL private fun getDefiniteNullability(expression: KtExpression): DefiniteNullability = withValidityAssertion { - fun FirExpression.isNotNullable() = with(analysisSession.rootModuleSession.typeContext) { + fun FirExpression.isNotNullable() = with(analysisSession.useSiteSession.typeContext) { !typeRef.coneType.isNullableType() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt index 2bd3d0914ca..07048815284 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirImportOptimizer.kt @@ -44,7 +44,7 @@ internal class KtFirImportOptimizer( private val firResolveState: LLFirModuleResolveState ) : KtImportOptimizer() { private val firSession: FirSession - get() = firResolveState.rootModuleSession + get() = firResolveState.useSiteFirSession override fun analyseImports(file: KtFile): KtImportOptimizerResult { assertIsValidAndAccessible() diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirInheritorsProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirInheritorsProvider.kt index 8c941b4b551..e57d8813bb6 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirInheritorsProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirInheritorsProvider.kt @@ -26,7 +26,7 @@ internal class KtFirInheritorsProvider( require(classSymbol.modality == Modality.SEALED) require(classSymbol is KtFirNamedClassOrObjectSymbol) - val inheritorClassIds = classSymbol.firSymbol.fir.getSealedClassInheritors(analysisSession.rootModuleSession) + val inheritorClassIds = classSymbol.firSymbol.fir.getSealedClassInheritors(analysisSession.useSiteSession) with(analysisSession) { inheritorClassIds.mapNotNull { it.getCorrespondingToplevelClassOrObjectSymbol() as? KtNamedClassOrObjectSymbol } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirJvmTypeMapper.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirJvmTypeMapper.kt index 050de885922..8a4e267aea3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirJvmTypeMapper.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirJvmTypeMapper.kt @@ -19,6 +19,6 @@ internal class KtFirJvmTypeMapper( ) : KtJvmTypeMapper(), KtFirAnalysisSessionComponent { override fun mapTypeToJvmType(type: KtType, mode: TypeMappingMode): Type { - return analysisSession.rootModuleSession.jvmTypeMapper.mapType(type.coneType, mode) + return analysisSession.useSiteSession.jvmTypeMapper.mapType(type.coneType, mode) } } \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt index 86cd49ad605..4257a056dd6 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirReferenceShortener.kt @@ -167,7 +167,7 @@ private class FirShorteningContext(val analysisSession: KtFirAnalysisSession) { private val firResolveState = analysisSession.firResolveState private val firSession: FirSession - get() = firResolveState.rootModuleSession + get() = firResolveState.useSiteFirSession fun findFirstClassifierInScopesByName(positionScopes: List, targetClassName: Name): AvailableSymbol? { for (scope in positionScopes) { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSamResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSamResolver.kt index c02f8ec5f2d..fed6a69a1d0 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSamResolver.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSamResolver.kt @@ -28,7 +28,7 @@ internal class KtFirSamResolver( override fun getSamConstructor(ktClassLikeSymbol: KtClassLikeSymbol): KtSamConstructorSymbol? { val classId = ktClassLikeSymbol.classIdIfNonLocal ?: return null val owner = analysisSession.getClassLikeSymbol(classId) as? FirRegularClass ?: return null - val resolver = LocalSamResolver(analysisSession, analysisSession.rootModuleSession) + val resolver = LocalSamResolver(analysisSession, analysisSession.useSiteSession) return resolver.getSamConstructor(owner)?.let { analysisSession.firSymbolBuilder.functionLikeBuilder.buildSamConstructorSymbol(it.symbol) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt index 1744d61da4f..f46e977b0d8 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt @@ -53,7 +53,7 @@ internal class KtFirScopeProvider( override val token: ValidityToken, ) : KtScopeProvider(), ValidityTokenOwner { // KtFirScopeProvider is thread local, so it's okay to use the same session here - private val scopeSession = analysisSession.getScopeSessionFor(analysisSession.rootModuleSession) + private val scopeSession = analysisSession.getScopeSessionFor(analysisSession.useSiteSession) override val analysisSession: KtFirAnalysisSession by weakRef(analysisSession) @@ -89,7 +89,7 @@ internal class KtFirScopeProvider( override fun getMemberScope(classSymbol: KtSymbolWithMembers): KtScope = withValidityAssertion { memberScopeCache.getOrPut(classSymbol) { val firScope = classSymbol.withFirForScope { fir -> - val firSession = analysisSession.rootModuleSession + val firSession = analysisSession.useSiteSession fir.unsubstitutedScope( firSession, scopeSession, @@ -103,7 +103,7 @@ internal class KtFirScopeProvider( override fun getStaticMemberScope(symbol: KtSymbolWithMembers): KtScope { val firScope = symbol.withFirForScope { fir -> - val firSession = analysisSession.rootModuleSession + val firSession = analysisSession.useSiteSession fir.scopeProvider.getStaticScope( fir, firSession, @@ -116,7 +116,7 @@ internal class KtFirScopeProvider( override fun getDeclaredMemberScope(classSymbol: KtSymbolWithMembers): KtScope = withValidityAssertion { declaredMemberScopeCache.getOrPut(classSymbol) { val firScope = classSymbol.withFirForScope { - analysisSession.rootModuleSession.declaredMemberScope(it) + analysisSession.useSiteSession.declaredMemberScope(it) } ?: return@getOrPut getEmptyScope() KtFirDelegatingScope(firScope, builder, token) @@ -130,7 +130,7 @@ internal class KtFirScopeProvider( val firScope = classSymbol.withFirForScope { fir -> val delegateFields = fir.delegateFields if (delegateFields.isNotEmpty()) { - val firSession = analysisSession.rootModuleSession + val firSession = analysisSession.useSiteSession FirDelegatedMemberScope( firSession, scopeSession, @@ -176,7 +176,7 @@ internal class KtFirScopeProvider( override fun getTypeScope(type: KtType): KtScope? { check(type is KtFirType) { "KtFirScopeProvider can only work with KtFirType, but ${type::class} was provided" } - val firSession = firResolveState.rootModuleSession + val firSession = firResolveState.useSiteFirSession val firTypeScope = type.coneType.scope( firSession, scopeSession, diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt index 1c59159bf97..29e8f252d83 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt @@ -26,7 +26,7 @@ internal class KtFirSymbolDeclarationRendererProvider( override fun render(type: KtType, options: KtTypeRendererOptions): String { require(type is KtFirType) - return ConeTypeIdeRenderer(analysisSession.firResolveState.rootModuleSession, options).renderType(type.coneType) + return ConeTypeIdeRenderer(analysisSession.firResolveState.useSiteFirSession, options).renderType(type.coneType) } override fun renderDeclaration(symbol: KtDeclarationSymbol, options: KtDeclarationRendererOptions): String { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeInfoProvider.kt index 1d345979e34..2f253305c2e 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeInfoProvider.kt @@ -25,7 +25,7 @@ internal class KtFirTypeInfoProvider( override fun isFunctionalInterfaceType(type: KtType): Boolean { val coneType = (type as KtFirType).coneType - val firSession = analysisSession.rootModuleSession + val firSession = analysisSession.useSiteSession val samResolver = FirSamResolverImpl( firSession, analysisSession.getScopeSessionFor(firSession), @@ -35,14 +35,14 @@ internal class KtFirTypeInfoProvider( override fun getFunctionClassKind(type: KtType): FunctionClassKind? { val coneType = (type as KtFirType).coneType - return coneType.functionClassKind(analysisSession.rootModuleSession) + return coneType.functionClassKind(analysisSession.useSiteSession) } override fun canBeNull(type: KtType): Boolean = (type as KtFirType).coneType.canBeNull override fun isDenotable(type: KtType): Boolean { val coneType = (type as KtFirType).coneType - return analysisSession.rootModuleSession.typeApproximator.approximateToSuperType( + return analysisSession.useSiteSession.typeApproximator.approximateToSuperType( coneType, PublicTypeApproximator.PublicApproximatorConfiguration(false) ) == null diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt index 34e9eb4f732..33e7d14b69b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt @@ -80,7 +80,7 @@ internal class KtFirTypeProvider( } override fun commonSuperType(types: Collection): KtType? { - return analysisSession.rootModuleSession.typeContext + return analysisSession.useSiteSession.typeContext .commonSuperTypeOrNull(types.map { it.coneType }) ?.asKtType() } @@ -115,7 +115,7 @@ internal class KtFirTypeProvider( } override fun haveCommonSubtype(a: KtType, b: KtType): Boolean { - return analysisSession.rootModuleSession.typeContext.isCompatible( + return analysisSession.useSiteSession.typeContext.isCompatible( a.coneType, b.coneType ) == ConeTypeCompatibilityChecker.Compatibility.COMPATIBLE @@ -136,7 +136,7 @@ internal class KtFirTypeProvider( // We also need to collect those on `upperBound` due to nullability. is ConeFlexibleType -> lowerBound.getDirectSuperTypes(shouldApproximate) + upperBound.getDirectSuperTypes(shouldApproximate) is ConeDefinitelyNotNullType -> original.getDirectSuperTypes(shouldApproximate).map { - ConeDefinitelyNotNullType.create(it, analysisSession.rootModuleSession.typeContext) ?: it + ConeDefinitelyNotNullType.create(it, analysisSession.useSiteSession.typeContext) ?: it } is ConeIntersectionType -> intersectedTypes.asSequence().flatMap { it.getDirectSuperTypes(shouldApproximate) } is ConeErrorType -> emptySequence() @@ -146,7 +146,7 @@ internal class KtFirTypeProvider( } private fun ConeLookupTagBasedType.getSubstitutedSuperTypes(shouldApproximate: Boolean): Sequence { - val session = analysisSession.firResolveState.rootModuleSession + val session = analysisSession.firResolveState.useSiteFirSession val symbol = lookupTag.toSymbol(session) val superTypes = when (symbol) { is FirAnonymousObjectSymbol -> symbol.superConeTypes diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt index 5adf7c2db67..0552e5c3042 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt @@ -189,7 +189,7 @@ internal object FirReferenceResolveHelper { val symbolBuilder = analysisSession.firSymbolBuilder val adjustedResolutionExpression = adjustResolutionExpression(expression) val fir = adjustedResolutionExpression.getOrBuildFir(analysisSession.firResolveState) - val session = analysisSession.firResolveState.rootModuleSession + val session = analysisSession.firResolveState.useSiteFirSession return when (fir) { is FirResolvedTypeRef -> getSymbolsForResolvedTypeRef(fir, expression, session, symbolBuilder) is FirResolvedQualifier -> diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt index 947a0aeb557..5593e10139f 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt @@ -27,7 +27,7 @@ internal class KtFirAnonymousObjectSymbol( ) : KtAnonymousObjectSymbol(), KtFirSymbol { override val psi: PsiElement? by cached { firSymbol.findPsi() } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val superTypes: List by cached { firSymbol.superTypesList(builder) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirArrayOfSymbolProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirArrayOfSymbolProvider.kt index 84b6f7c72f6..3c3f93a3942 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirArrayOfSymbolProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirArrayOfSymbolProvider.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.name.StandardClassIds object KtFirArrayOfSymbolProvider { internal fun KtFirAnalysisSession.arrayOfSymbol(identifier: Name): KtFirFunctionSymbol? { - val firSymbol = firResolveState.rootModuleSession.symbolProvider.getTopLevelCallableSymbols(kotlinPackage, identifier).firstOrNull { + val firSymbol = firResolveState.useSiteFirSession.symbolProvider.getTopLevelCallableSymbols(kotlinPackage, identifier).firstOrNull { /* choose (for byte array) * public fun byteArrayOf(vararg elements: kotlin.Byte): kotlin.ByteArray */ diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt index 88fdda80e7d..dee6b6ddb34 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt @@ -48,7 +48,7 @@ internal class KtFirConstructorSymbol( override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val containingClassIdIfNonLocal: ClassId? get() = withValidityAssertion { firSymbol.containingClass()?.classId?.takeUnless { it.isLocal } } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt index bf47de31943..fa9cf843cc9 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt @@ -29,7 +29,7 @@ internal class KtFirFileSymbol( TODO("Creating pointers for files from library is not supported yet") } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override fun equals(other: Any?): Boolean = symbolEquals(other) override fun hashCode(): Int = symbolHashCode() diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt index b313d2f6f2e..61f4a88a14b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt @@ -57,7 +57,7 @@ internal class KtFirFunctionSymbol( override val hasStableParameterNames: Boolean get() = withValidityAssertion { firSymbol.fir.getHasStableParameterNames(firSymbol.moduleData.session) } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val isSuspend: Boolean get() = withValidityAssertion { firSymbol.isSuspend } override val isOverride: Boolean get() = withValidityAssertion { firSymbol.isOverride } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt index d93ae76a9f4..1482adc5a8e 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt @@ -78,7 +78,7 @@ internal class KtFirKotlinPropertySymbol( override val modality: Modality get() = withValidityAssertion { firSymbol.modalityOrFinal } override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val callableIdIfNonLocal: CallableId? get() = withValidityAssertion { firSymbol.getCallableIdIfNonLocal() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt index 7158344122d..2a2910e33c7 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt @@ -65,7 +65,7 @@ internal class KtFirNamedClassOrObjectSymbol( else -> possiblyRawVisibility } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val isInner: Boolean get() = withValidityAssertion { firSymbol.isInner } override val isData: Boolean get() = withValidityAssertion { firSymbol.isData } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirOverrideInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirOverrideInfoProvider.kt index 49a42626bb6..364290d6d58 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirOverrideInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirOverrideInfoProvider.kt @@ -56,7 +56,7 @@ internal class KtFirOverrideInfoProvider( return memberFir.symbol.getImplementationStatus( SessionHolderImpl( rootModuleSession, - analysisSession.getScopeSessionFor(analysisSession.rootModuleSession), + analysisSession.getScopeSessionFor(analysisSession.useSiteSession), ), parentClassFir.symbol ) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt index 84c81e263ce..f67c0fe1d1b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt @@ -54,7 +54,7 @@ internal class KtFirPropertyGetterSymbol( override val returnType: KtType get() = withValidityAssertion { firSymbol.returnType(builder) } override val receiverType: KtType? get() = withValidityAssertion { firSymbol.receiverType(builder) } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } /** * Returns [CallableId] of the delegated Java method if the corresponding property of this setter is a synthetic Java property. diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt index 683d095c746..ab3e3bc10a3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -51,7 +51,7 @@ internal class KtFirPropertySetterSymbol( override val modality: Modality get() = withValidityAssertion { firSymbol.modalityOrFinal } override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } /** * Returns [CallableId] of the delegated Java method if the corresponding property of this setter is a synthetic Java property. diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt index d99b5c0556a..3605e773638 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt @@ -56,7 +56,7 @@ internal class KtFirSyntheticJavaPropertySymbol( override val modality: Modality get() = withValidityAssertion { firSymbol.modality ?: firSymbol.invalidModalityError() } override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override val callableIdIfNonLocal: CallableId? get() = withValidityAssertion { firSymbol.getCallableIdIfNonLocal() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt index 8d152e1c5ab..859555f7568 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt @@ -49,7 +49,7 @@ internal class KtFirTypeAliasSymbol( override val expandedType: KtType by cached { builder.typeBuilder.buildKtType(firSymbol.resolvedExpandedTypeRef) } override val annotationsList: KtAnnotationsList by cached { - KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) + KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override fun createPointer(): KtSymbolPointer { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt index c53f60dce2b..2fa2f454cfa 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt @@ -53,7 +53,7 @@ internal class KtFirValueParameterSymbol( override val hasDefaultValue: Boolean get() = withValidityAssertion { firSymbol.hasDefaultValue } - override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.rootModuleSession, token) } + override val annotationsList by cached { KtFirAnnotationListForDeclaration.create(firSymbol, resolveState.useSiteFirSession, token) } override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirMemberSymbolPointer.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirMemberSymbolPointer.kt index 7299622a3b6..16ee5ce5d60 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirMemberSymbolPointer.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirMemberSymbolPointer.kt @@ -24,7 +24,7 @@ internal abstract class KtFirMemberSymbolPointer( require(analysisSession is KtFirAnalysisSession) val owner = analysisSession.getClassLikeSymbol(ownerClassId) as? FirRegularClass ?: return null - val firSession = analysisSession.rootModuleSession + val firSession = analysisSession.useSiteSession val scope = owner.unsubstitutedScope( firSession, analysisSession.getScopeSessionFor(firSession), diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirTopLevelCallableSymbolPointer.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirTopLevelCallableSymbolPointer.kt index 5f96afc2168..38018b8bc7e 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirTopLevelCallableSymbolPointer.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/KtFirTopLevelCallableSymbolPointer.kt @@ -33,5 +33,5 @@ internal abstract class KtTopLevelCallableSymbolPointer( } private fun KtFirAnalysisSession.getCallableSymbols(callableId: CallableId) = - firResolveState.rootModuleSession.symbolProvider.getTopLevelCallableSymbols(callableId.packageName, callableId.callableName) + firResolveState.useSiteFirSession.symbolProvider.getTopLevelCallableSymbols(callableId.packageName, callableId.callableName) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/pointerUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/pointerUtils.kt index 844ebcf693c..9287aa8043d 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/pointerUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/pointers/pointerUtils.kt @@ -58,4 +58,4 @@ internal fun FirDeclaration.createSignature(): IdSignature { } internal fun KtFirAnalysisSession.getClassLikeSymbol(classId: ClassId) = - firResolveState.rootModuleSession.symbolProvider.getClassLikeSymbolByClassId(classId)?.fir + firResolveState.useSiteFirSession.symbolProvider.getClassLikeSymbolByClassId(classId)?.fir diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt index d7aa8e6fb5f..1b4ae4dcab4 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/ktSymbolUtils.kt @@ -29,7 +29,7 @@ fun FirBasedSymbol<*>.getContainingKtModule(resolveState: LLFirModuleResolveStat val target = when (this) { is FirCallableSymbol -> { // callable fake overrides have use-site FirModuleData - dispatchReceiverClassOrNull()?.toFirRegularClassSymbol(resolveState.rootModuleSession) ?: this + dispatchReceiverClassOrNull()?.toFirRegularClassSymbol(resolveState.useSiteFirSession) ?: this } else -> this } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt index a78911d0a71..90b8d5647dc 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt @@ -12,13 +12,10 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilt import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirModuleResolveState import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirElementBuilder import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirTowerContextProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.KtToFirMapping import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirResolvableModuleResolveState import org.jetbrains.kotlin.analysis.low.level.api.fir.state.TowerProviderForElementForState import org.jetbrains.kotlin.analysis.low.level.api.fir.util.LLFirScopeSessionProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.util.containingKtFileIfAny -import org.jetbrains.kotlin.analysis.low.level.api.fir.util.originalKtFile import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.utils.caches.* import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic @@ -40,8 +37,8 @@ internal class FirModuleResolveStateDepended( private val ktToFirMapping: KtToFirMapping?, ) : LLFirModuleResolveState() { override val project: Project get() = originalState.project - override val module: KtModule get() = originalState.module - override val rootModuleSession get() = originalState.rootModuleSession + override val useSiteKtModule: KtModule get() = originalState.useSiteKtModule + override val useSiteFirSession get() = originalState.useSiteFirSession private val scopeSessionProviderCache by softCachedValue( project, diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt index 41ff0287a91..14b7cc6bd18 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt @@ -10,9 +10,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ProjectRootModificationTracker import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirModuleResolveState -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyDeclarationResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.* -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLibrarySourceResolvableModuleSession import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionProviderStorage import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceModuleResolveState import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirLibraryOrLibrarySourceResolvableModuleResolveState @@ -43,18 +41,18 @@ internal class LLFirResolveStateService(project: Project) { ServiceManager.getService(project, LLFirResolveStateService::class.java) internal fun createResolveStateFor( - module: KtModule, + useSiteKtModule: KtModule, sessionProviderStorage: LLFirSessionProviderStorage, configureSession: (LLFirSession.() -> Unit)? = null, ): LLFirResolvableModuleResolveState { - val sessionProvider = sessionProviderStorage.getSessionProvider(module, configureSession) + val sessionProvider = sessionProviderStorage.getSessionProvider(useSiteKtModule, configureSession) val useSiteSession = sessionProvider.rootModuleSession - return when (module) { + return when (useSiteKtModule) { is KtSourceModule -> { LLFirSourceModuleResolveState( useSiteSession.moduleComponents.globalResolveComponents, sessionProviderStorage.project, - module, + useSiteKtModule, sessionProvider, ) } @@ -62,12 +60,12 @@ internal class LLFirResolveStateService(project: Project) { LLFirLibraryOrLibrarySourceResolvableModuleResolveState( useSiteSession.moduleComponents.globalResolveComponents, sessionProviderStorage.project, - module, + useSiteKtModule, sessionProvider, ) } else -> { - error("Unexpected $module") + error("Unexpected $useSiteKtModule") } } @@ -77,12 +75,12 @@ internal class LLFirResolveStateService(project: Project) { @TestOnly fun createResolveStateForNoCaching( - module: KtModule, + useSiteKtModule: KtModule, project: Project, configureSession: (LLFirSession.() -> Unit)? = null, ): LLFirModuleResolveState = LLFirResolveStateService.createResolveStateFor( - module = module, + useSiteKtModule = useSiteKtModule, sessionProviderStorage = LLFirSessionProviderStorage(project), configureSession = configureSession ) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LLFirModuleResolveState.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LLFirModuleResolveState.kt index e0221f3c852..92c36b81d20 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LLFirModuleResolveState.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LLFirModuleResolveState.kt @@ -6,14 +6,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirTowerContextProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession -import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule import org.jetbrains.kotlin.analysis.project.structure.KtModule -import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule -import org.jetbrains.kotlin.analysis.project.structure.getKtModule import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession @@ -25,14 +19,13 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.KtLambdaExpression abstract class LLFirModuleResolveState { abstract val project: Project - abstract val rootModuleSession: FirSession + abstract val useSiteFirSession: FirSession - abstract val module: KtModule + abstract val useSiteKtModule: KtModule internal abstract fun getSessionFor(module: KtModule): FirSession diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt index bef9b043ef4..a90a13ce89d 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacadeForResolveOnAir.kt @@ -304,7 +304,7 @@ object LowLevelFirApiFacadeForResolveOnAir { val context = state.getTowerContextProvider(place.containingKtFile).getClosestAvailableParentContext(place) ?: error("TowerContext not found for ${place.getElementTextInContext()}") - val session = state.rootModuleSession + val session = state.useSiteFirSession val firTypeReference = buildFirUserTypeRef( typeReference = typeReference, session = session, diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableModuleResolveState.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableModuleResolveState.kt index 5d537df2681..9e43b55a840 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableModuleResolveState.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableModuleResolveState.kt @@ -8,8 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyDeclarationResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLibrarySourceResolvableModuleSession import org.jetbrains.kotlin.analysis.project.structure.KtModule @@ -21,7 +19,7 @@ import org.jetbrains.kotlin.psi.KtFile internal class LLFirLibraryOrLibrarySourceResolvableModuleResolveState( override val globalComponents: LLFirGlobalResolveComponents, override val project: Project, - override val module: KtModule, + override val useSiteKtModule: KtModule, sessionProvider: LLFirSessionProvider, ) : LLFirResolvableModuleResolveState(sessionProvider) { override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List = @@ -33,7 +31,7 @@ internal class LLFirLibraryOrLibrarySourceResolvableModuleResolveState( override fun getModuleKind(module: KtModule): ModuleKind { LLFirLibraryOrLibrarySourceResolvableModuleSession.checkIsValidKtModule(module) return when { - module == this.module -> ModuleKind.RESOLVABLE_MODULE + module == this.useSiteKtModule -> ModuleKind.RESOLVABLE_MODULE else -> ModuleKind.BINARY_MODULE } } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableModuleResolveState.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableModuleResolveState.kt index 782793bd255..a87d8f35b76 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableModuleResolveState.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableModuleResolveState.kt @@ -39,7 +39,7 @@ internal abstract class LLFirResolvableModuleResolveState( ) : LLFirModuleResolveState() { abstract val globalComponents: LLFirGlobalResolveComponents - final override val rootModuleSession = sessionProvider.rootModuleSession + final override val useSiteFirSession = sessionProvider.rootModuleSession override fun getSessionFor(module: KtModule): FirSession = sessionProvider.getSession(module) @@ -80,7 +80,7 @@ internal abstract class LLFirResolvableModuleResolveState( "This method will only work on compiled declarations, but this declaration is not compiled: ${ktDeclaration.getElementTextInContext()}" } - val searcher = FirDeclarationForCompiledElementSearcher(rootModuleSession.symbolProvider) + val searcher = FirDeclarationForCompiledElementSearcher(useSiteFirSession.symbolProvider) val firDeclaration = searcher.findNonLocalDeclaration(ktDeclaration) return firDeclaration.symbol } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceModuleResolveState.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceModuleResolveState.kt index c24c11a67d4..8e19dbe8de3 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceModuleResolveState.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceModuleResolveState.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.psi.KtFile internal class LLFirSourceModuleResolveState( override val globalComponents: LLFirGlobalResolveComponents, override val project: Project, - override val module: KtModule, + override val useSiteKtModule: KtModule, sessionProvider: LLFirSessionProvider, ) : LLFirResolvableModuleResolveState(sessionProvider) { override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyBodiesCalculatorTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyBodiesCalculatorTest.kt index 8edcdb3eefa..a4ae81433db 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyBodiesCalculatorTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyBodiesCalculatorTest.kt @@ -32,7 +32,7 @@ abstract class AbstractFirLazyBodiesCalculatorTest : AbstractLowLevelApiSingleFi override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) { resolveWithClearCaches(ktFile) { resolveState -> - val session = resolveState.rootModuleSession + val session = resolveState.useSiteFirSession val provider = session.kotlinScopeProvider val laziedFirFile = RawFirBuilder( diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/AbstractCompilerBasedTestForFir.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/AbstractCompilerBasedTestForFir.kt index 33bc19b9dbc..2a49c81c0ab 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/AbstractCompilerBasedTestForFir.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/AbstractCompilerBasedTestForFir.kt @@ -81,7 +81,7 @@ abstract class AbstractCompilerBasedTestForFir : AbstractCompilerBasedTest() { } else DiagnosticCheckerFilter.ONLY_COMMON_CHECKERS val analyzerFacade = LowLevelFirAnalyzerFacade(resolveState, allFirFiles.toMap(), diagnosticCheckerFilter) - return LowLevelFirOutputArtifact(resolveState.rootModuleSession, analyzerFacade) + return LowLevelFirOutputArtifact(resolveState.useSiteFirSession, analyzerFacade) } }