[LL API] Move LLModuleProvider and LLSessionProvider instantiation out
This commit is contained in:
+9
-4
@@ -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.LLFirResolvableResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirScriptResolveSession
|
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.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.low.level.api.fir.util.errorWithFirSpecificEntries
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.*
|
import org.jetbrains.kotlin.analysis.project.structure.*
|
||||||
|
|
||||||
@@ -35,11 +37,14 @@ class LLFirResolveSessionService(project: Project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun create(module: KtModule, factory: (KtModule) -> LLFirSession): LLFirResolvableResolveSession {
|
private fun create(module: KtModule, factory: (KtModule) -> LLFirSession): LLFirResolvableResolveSession {
|
||||||
|
val moduleProvider = LLModuleProvider(module)
|
||||||
|
val sessionProvider = LLSessionProvider(module, factory)
|
||||||
|
|
||||||
return when (module) {
|
return when (module) {
|
||||||
is KtSourceModule -> LLFirSourceResolveSession(module, factory)
|
is KtSourceModule -> LLFirSourceResolveSession(moduleProvider, sessionProvider)
|
||||||
is KtLibraryModule, is KtLibrarySourceModule -> LLFirLibraryOrLibrarySourceResolvableResolveSession(module, factory)
|
is KtLibraryModule, is KtLibrarySourceModule -> LLFirLibraryOrLibrarySourceResolvableResolveSession(moduleProvider, sessionProvider)
|
||||||
is KtScriptModule -> LLFirScriptResolveSession(module, factory)
|
is KtScriptModule -> LLFirScriptResolveSession(moduleProvider, sessionProvider)
|
||||||
is KtNotUnderContentRootModule -> LLFirNotUnderContentRootResolveSession(module, factory)
|
is KtNotUnderContentRootModule -> LLFirNotUnderContentRootResolveSession(moduleProvider, sessionProvider)
|
||||||
else -> {
|
else -> {
|
||||||
errorWithFirSpecificEntries("Unexpected ${module::class.java}") {
|
errorWithFirSpecificEntries("Unexpected ${module::class.java}") {
|
||||||
withEntry("module", module) { it.moduleDescription }
|
withEntry("module", module) { it.moduleDescription }
|
||||||
|
|||||||
+5
-6
@@ -6,16 +6,15 @@
|
|||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.state
|
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.LLFirLibraryOrLibrarySourceResolvableModuleSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
|
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
|
|
||||||
internal class LLFirLibraryOrLibrarySourceResolvableResolveSession(
|
internal class LLFirLibraryOrLibrarySourceResolvableResolveSession(
|
||||||
useSiteKtModule: KtModule,
|
moduleProvider: LLModuleProvider,
|
||||||
useSiteSessionFactory: (KtModule) -> LLFirSession
|
sessionProvider: LLSessionProvider
|
||||||
) : LLFirResolvableResolveSession(
|
) : LLFirResolvableResolveSession(
|
||||||
useSiteKtModule = useSiteKtModule,
|
moduleProvider = moduleProvider,
|
||||||
moduleKindProvider = LLLibraryModuleKindProvider(useSiteKtModule),
|
moduleKindProvider = LLLibraryModuleKindProvider(moduleProvider.useSiteModule),
|
||||||
useSiteSessionFactory = useSiteSessionFactory
|
sessionProvider = sessionProvider
|
||||||
) {
|
) {
|
||||||
override val diagnosticProvider: LLDiagnosticProvider
|
override val diagnosticProvider: LLDiagnosticProvider
|
||||||
get() = LLEmptyDiagnosticProvider
|
get() = LLEmptyDiagnosticProvider
|
||||||
|
|||||||
+5
-6
@@ -5,16 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.state
|
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
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
|
|
||||||
internal class LLFirNotUnderContentRootResolveSession(
|
internal class LLFirNotUnderContentRootResolveSession(
|
||||||
useSiteKtModule: KtModule,
|
moduleProvider: LLModuleProvider,
|
||||||
useSiteSessionFactory: (KtModule) -> LLFirSession
|
sessionProvider: LLSessionProvider
|
||||||
) : LLFirResolvableResolveSession(
|
) : LLFirResolvableResolveSession(
|
||||||
useSiteKtModule = useSiteKtModule,
|
moduleProvider = moduleProvider,
|
||||||
moduleKindProvider = LLNotUnderContentRootModuleKindProvider(useSiteKtModule),
|
moduleKindProvider = LLNotUnderContentRootModuleKindProvider(moduleProvider.useSiteModule),
|
||||||
useSiteSessionFactory = useSiteSessionFactory
|
sessionProvider = sessionProvider
|
||||||
) {
|
) {
|
||||||
override val diagnosticProvider: LLDiagnosticProvider
|
override val diagnosticProvider: LLDiagnosticProvider
|
||||||
get() = LLEmptyDiagnosticProvider
|
get() = LLEmptyDiagnosticProvider
|
||||||
|
|||||||
+4
-5
@@ -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.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.FirTowerContextProvider
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingDeclaration
|
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.*
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
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
|
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
||||||
|
|
||||||
internal abstract class LLFirResolvableResolveSession(
|
internal abstract class LLFirResolvableResolveSession(
|
||||||
useSiteKtModule: KtModule,
|
moduleProvider: LLModuleProvider,
|
||||||
moduleKindProvider: LLModuleKindProvider,
|
moduleKindProvider: LLModuleKindProvider,
|
||||||
useSiteSessionFactory: (KtModule) -> LLFirSession,
|
sessionProvider: LLSessionProvider
|
||||||
) : LLFirResolveSession(
|
) : LLFirResolveSession(
|
||||||
moduleProvider = LLModuleProvider(useSiteKtModule),
|
moduleProvider = moduleProvider,
|
||||||
moduleKindProvider = moduleKindProvider,
|
moduleKindProvider = moduleKindProvider,
|
||||||
sessionProvider = LLSessionProvider(useSiteKtModule, useSiteSessionFactory),
|
sessionProvider = sessionProvider,
|
||||||
scopeSessionProvider = LLDefaultScopeSessionProvider
|
scopeSessionProvider = LLDefaultScopeSessionProvider
|
||||||
) {
|
) {
|
||||||
override fun getOrBuildFirFor(element: KtElement): FirElement? {
|
override fun getOrBuildFirFor(element: KtElement): FirElement? {
|
||||||
|
|||||||
+5
-6
@@ -5,17 +5,16 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.state
|
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.project.structure.*
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
|
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
|
||||||
|
|
||||||
internal class LLFirScriptResolveSession(
|
internal class LLFirScriptResolveSession(
|
||||||
useSiteKtModule: KtModule,
|
moduleProvider: LLModuleProvider,
|
||||||
useSiteSessionFactory: (KtModule) -> LLFirSession,
|
sessionProvider: LLSessionProvider
|
||||||
) : LLFirResolvableResolveSession(
|
) : LLFirResolvableResolveSession(
|
||||||
useSiteKtModule = useSiteKtModule,
|
moduleProvider = moduleProvider,
|
||||||
moduleKindProvider = LLScriptModuleKindProvider(useSiteKtModule),
|
moduleKindProvider = LLScriptModuleKindProvider(moduleProvider.useSiteModule),
|
||||||
useSiteSessionFactory = useSiteSessionFactory
|
sessionProvider = sessionProvider
|
||||||
) {
|
) {
|
||||||
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
|
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.state
|
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.KtBuiltinsModule
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
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
|
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
|
||||||
|
|
||||||
internal class LLFirSourceResolveSession(
|
internal class LLFirSourceResolveSession(
|
||||||
useSiteKtModule: KtModule,
|
moduleProvider: LLModuleProvider,
|
||||||
useSiteSessionFactory: (KtModule) -> LLFirSession,
|
sessionProvider: LLSessionProvider
|
||||||
) : LLFirResolvableResolveSession(
|
) : LLFirResolvableResolveSession(
|
||||||
useSiteKtModule = useSiteKtModule,
|
moduleProvider = moduleProvider,
|
||||||
moduleKindProvider = LLSourceModuleKindProvider,
|
moduleKindProvider = LLSourceModuleKindProvider,
|
||||||
useSiteSessionFactory = useSiteSessionFactory
|
sessionProvider = sessionProvider
|
||||||
) {
|
) {
|
||||||
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
|
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user