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 b58f51d1555..80e985a008f 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 @@ -14,11 +14,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionCach import org.jetbrains.kotlin.analysis.low.level.api.fir.state.KtModuleKind import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLDiagnosticProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLEmptyDiagnosticProvider -import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirLibraryOrLibrarySourceResolvableResolveSession -import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirNotUnderContentRootResolveSession 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.LLModuleKindProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLModuleProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLSimpleResolvableModuleKindProvider @@ -47,13 +43,18 @@ class LLFirResolveSessionService(project: Project) { private fun create(module: KtModule, factory: (KtModule) -> LLFirSession): LLFirResolvableResolveSession { val moduleProvider = LLModuleProvider(module) val sessionProvider = LLSessionProvider(module, factory) + val moduleKindProvider = createModuleKindProvider(module) val diagnosticProvider = createDiagnosticProvider(moduleProvider, sessionProvider) + return LLFirResolvableResolveSession(moduleProvider, moduleKindProvider, sessionProvider, diagnosticProvider) + } + + private fun createModuleKindProvider(module: KtModule): LLModuleKindProvider { return when (module) { - is KtSourceModule -> LLFirSourceResolveSession(moduleProvider, LLSourceModuleKindProvider, sessionProvider, diagnosticProvider) - is KtLibraryModule, is KtLibrarySourceModule -> LLFirLibraryOrLibrarySourceResolvableResolveSession(moduleProvider, LLLibraryModuleKindProvider(module), sessionProvider, diagnosticProvider) - is KtScriptModule -> LLFirScriptResolveSession(moduleProvider, LLScriptModuleKindProvider(module), sessionProvider, diagnosticProvider) - is KtNotUnderContentRootModule -> LLSimpleResolvableModuleKindProvider(moduleProvider, LLNotUnderContentRootModuleKindProvider(module), sessionProvider, diagnosticProvider) + is KtSourceModule -> LLSourceModuleKindProvider + is KtLibraryModule, is KtLibrarySourceModule -> LLLibraryModuleKindProvider(module) + is KtScriptModule -> LLScriptModuleKindProvider(module) + is KtNotUnderContentRootModule -> LLSimpleResolvableModuleKindProvider(module) 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 deleted file mode 100644 index b7d24191d3a..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirLibraryOrLibrarySourceResolvableResolveSession.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.state - -internal class LLFirLibraryOrLibrarySourceResolvableResolveSession( - moduleProvider: LLModuleProvider, - moduleKindProvider: LLModuleKindProvider, - sessionProvider: LLSessionProvider, - diagnosticProvider: LLDiagnosticProvider -) : LLFirResolvableResolveSession( - moduleProvider = moduleProvider, - moduleKindProvider = moduleKindProvider, - sessionProvider = sessionProvider, - diagnosticProvider = diagnosticProvider -) \ No newline at end of file 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 deleted file mode 100644 index 9da230ad4bd..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirNotUnderContentRootResolveSession.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.state - -internal class LLFirNotUnderContentRootResolveSession( - moduleProvider: LLModuleProvider, - moduleKindProvider: LLModuleKindProvider, - sessionProvider: LLSessionProvider, - diagnosticProvider: LLDiagnosticProvider -) : LLFirResolvableResolveSession( - moduleProvider = moduleProvider, - moduleKindProvider = moduleKindProvider, - sessionProvider = sessionProvider, - diagnosticProvider = diagnosticProvider -) \ No newline at end of file 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 eac45aa1446..a8a4e246a86 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 @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment -internal abstract class LLFirResolvableResolveSession( +internal class LLFirResolvableResolveSession( moduleProvider: LLModuleProvider, moduleKindProvider: LLModuleKindProvider, sessionProvider: LLSessionProvider, @@ -53,7 +53,7 @@ internal abstract class LLFirResolvableResolveSession( return moduleComponents.firFileBuilder.buildRawFirFileWithCaching(ktFile) } - protected fun getModuleComponentsForElement(element: KtElement): LLFirModuleResolveComponents { + private fun getModuleComponentsForElement(element: KtElement): LLFirModuleResolveComponents { val module = getModule(element) return sessionProvider.getResolvableSession(module).moduleComponents } @@ -107,7 +107,7 @@ internal abstract class LLFirResolvableResolveSession( return findDeclarationInSourceViaResolve(ktDeclaration) } - protected fun getModuleKind(module: KtModule): KtModuleKind { + private fun getModuleKind(module: KtModule): KtModuleKind { return moduleKindProvider.getKind(module) } 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 deleted file mode 100644 index 4f60a92ee4d..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirScriptResolveSession.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.state - -internal class LLFirScriptResolveSession( - moduleProvider: LLModuleProvider, - moduleKindProvider: LLModuleKindProvider, - sessionProvider: LLSessionProvider, - diagnosticProvider: LLDiagnosticProvider -) : LLFirResolvableResolveSession( - moduleProvider = moduleProvider, - moduleKindProvider = moduleKindProvider, - sessionProvider = sessionProvider, - diagnosticProvider = diagnosticProvider -) \ No newline at end of file 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 deleted file mode 100644 index 0798ab07d9d..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirSourceResolveSession.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.state - -internal class LLFirSourceResolveSession( - moduleProvider: LLModuleProvider, - moduleKindProvider: LLModuleKindProvider, - sessionProvider: LLSessionProvider, - diagnosticProvider: LLDiagnosticProvider -) : LLFirResolvableResolveSession( - moduleProvider = moduleProvider, - moduleKindProvider = moduleKindProvider, - sessionProvider = sessionProvider, - diagnosticProvider = diagnosticProvider -) \ No newline at end of file