From b18856dc0a6d394bc4fd92c7c06bf221bb991a94 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 1 Sep 2023 17:52:11 +0900 Subject: [PATCH] [LL API] Move LLModuleProvider and LLSessionProvider instantiation out --- .../low/level/api/fir/LLFirResolveStateService.kt | 13 +++++++++---- ...ibraryOrLibrarySourceResolvableResolveSession.kt | 11 +++++------ .../state/LLFirNotUnderContentRootResolveSession.kt | 11 +++++------ .../api/fir/state/LLFirResolvableResolveSession.kt | 9 ++++----- .../api/fir/state/LLFirScriptResolveSession.kt | 11 +++++------ .../api/fir/state/LLFirSourceResolveSession.kt | 9 ++++----- 6 files changed, 32 insertions(+), 32 deletions(-) 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 a95ca90f281..5724142578d 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 @@ -15,6 +15,8 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirNotUnderConten import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirResolvableResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirScriptResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLModuleProvider +import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLSessionProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries import org.jetbrains.kotlin.analysis.project.structure.* @@ -35,11 +37,14 @@ class LLFirResolveSessionService(project: Project) { } private fun create(module: KtModule, factory: (KtModule) -> LLFirSession): LLFirResolvableResolveSession { + val moduleProvider = LLModuleProvider(module) + val sessionProvider = LLSessionProvider(module, factory) + return when (module) { - is KtSourceModule -> LLFirSourceResolveSession(module, factory) - is KtLibraryModule, is KtLibrarySourceModule -> LLFirLibraryOrLibrarySourceResolvableResolveSession(module, factory) - is KtScriptModule -> LLFirScriptResolveSession(module, factory) - is KtNotUnderContentRootModule -> LLFirNotUnderContentRootResolveSession(module, factory) + is KtSourceModule -> LLFirSourceResolveSession(moduleProvider, sessionProvider) + is KtLibraryModule, is KtLibrarySourceModule -> LLFirLibraryOrLibrarySourceResolvableResolveSession(moduleProvider, sessionProvider) + is KtScriptModule -> LLFirScriptResolveSession(moduleProvider, sessionProvider) + is KtNotUnderContentRootModule -> LLFirNotUnderContentRootResolveSession(moduleProvider, sessionProvider) else -> { errorWithFirSpecificEntries("Unexpected ${module::class.java}") { withEntry("module", module) { it.moduleDescription } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableResolveSession.kt index 3944354dd01..6686c0bad70 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableResolveSession.kt @@ -6,16 +6,15 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLibrarySourceResolvableModuleSession -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.project.structure.KtModule internal class LLFirLibraryOrLibrarySourceResolvableResolveSession( - useSiteKtModule: KtModule, - useSiteSessionFactory: (KtModule) -> LLFirSession + moduleProvider: LLModuleProvider, + sessionProvider: LLSessionProvider ) : LLFirResolvableResolveSession( - useSiteKtModule = useSiteKtModule, - moduleKindProvider = LLLibraryModuleKindProvider(useSiteKtModule), - useSiteSessionFactory = useSiteSessionFactory + moduleProvider = moduleProvider, + moduleKindProvider = LLLibraryModuleKindProvider(moduleProvider.useSiteModule), + sessionProvider = sessionProvider ) { override val diagnosticProvider: LLDiagnosticProvider get() = LLEmptyDiagnosticProvider diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirNotUnderContentRootResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirNotUnderContentRootResolveSession.kt index 3064976446a..f2bf2e06c98 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirNotUnderContentRootResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirNotUnderContentRootResolveSession.kt @@ -5,16 +5,15 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.project.structure.KtModule internal class LLFirNotUnderContentRootResolveSession( - useSiteKtModule: KtModule, - useSiteSessionFactory: (KtModule) -> LLFirSession + moduleProvider: LLModuleProvider, + sessionProvider: LLSessionProvider ) : LLFirResolvableResolveSession( - useSiteKtModule = useSiteKtModule, - moduleKindProvider = LLNotUnderContentRootModuleKindProvider(useSiteKtModule), - useSiteSessionFactory = useSiteSessionFactory + moduleProvider = moduleProvider, + moduleKindProvider = LLNotUnderContentRootModuleKindProvider(moduleProvider.useSiteModule), + sessionProvider = sessionProvider ) { override val diagnosticProvider: LLDiagnosticProvider get() = LLEmptyDiagnosticProvider diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt index 76f1d23a422..18d8f4e2e64 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getModule import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirTowerContextProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingDeclaration -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.util.* import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher import org.jetbrains.kotlin.analysis.project.structure.KtModule @@ -33,13 +32,13 @@ import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment internal abstract class LLFirResolvableResolveSession( - useSiteKtModule: KtModule, + moduleProvider: LLModuleProvider, moduleKindProvider: LLModuleKindProvider, - useSiteSessionFactory: (KtModule) -> LLFirSession, + sessionProvider: LLSessionProvider ) : LLFirResolveSession( - moduleProvider = LLModuleProvider(useSiteKtModule), + moduleProvider = moduleProvider, moduleKindProvider = moduleKindProvider, - sessionProvider = LLSessionProvider(useSiteKtModule, useSiteSessionFactory), + sessionProvider = sessionProvider, scopeSessionProvider = LLDefaultScopeSessionProvider ) { override fun getOrBuildFirFor(element: KtElement): FirElement? { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirScriptResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirScriptResolveSession.kt index 4b72f0f1a33..a1de7de329f 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirScriptResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirScriptResolveSession.kt @@ -5,17 +5,16 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.project.structure.* import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError internal class LLFirScriptResolveSession( - useSiteKtModule: KtModule, - useSiteSessionFactory: (KtModule) -> LLFirSession, + moduleProvider: LLModuleProvider, + sessionProvider: LLSessionProvider ) : LLFirResolvableResolveSession( - useSiteKtModule = useSiteKtModule, - moduleKindProvider = LLScriptModuleKindProvider(useSiteKtModule), - useSiteSessionFactory = useSiteSessionFactory + moduleProvider = moduleProvider, + moduleKindProvider = LLScriptModuleKindProvider(moduleProvider.useSiteModule), + sessionProvider = sessionProvider ) { override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceResolveSession.kt index 204eaf03631..68fe57c130a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceResolveSession.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.project.structure.KtBuiltinsModule import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule import org.jetbrains.kotlin.analysis.project.structure.KtModule @@ -13,12 +12,12 @@ import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError internal class LLFirSourceResolveSession( - useSiteKtModule: KtModule, - useSiteSessionFactory: (KtModule) -> LLFirSession, + moduleProvider: LLModuleProvider, + sessionProvider: LLSessionProvider ) : LLFirResolvableResolveSession( - useSiteKtModule = useSiteKtModule, + moduleProvider = moduleProvider, moduleKindProvider = LLSourceModuleKindProvider, - useSiteSessionFactory = useSiteSessionFactory + sessionProvider = sessionProvider ) { override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider) }