[LL API] Remove leaves of 'LLFirResolvableResolveSession'

This commit is contained in:
Yan Zhulanow
2023-09-01 18:08:36 +09:00
committed by Space Team
parent f51a7515e1
commit b32c083346
6 changed files with 12 additions and 83 deletions
@@ -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 }
@@ -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
)
@@ -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
)
@@ -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)
}
@@ -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
)
@@ -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
)