[LL API] Pass 'LLDiagnosticProvider' to 'LLFirResolveSession' explicitly

This commit is contained in:
Yan Zhulanow
2023-09-01 17:57:10 +09:00
committed by Space Team
parent b18856dc0a
commit 68bb39fbcd
7 changed files with 20 additions and 27 deletions
@@ -49,11 +49,9 @@ internal class LLFirResolveSessionDepended(
originalFirResolveSession.moduleProvider,
originalFirResolveSession.moduleKindProvider,
originalFirResolveSession.sessionProvider,
LLDependedScopeSessionProvider(originalFirResolveSession.project)
LLDependedScopeSessionProvider(originalFirResolveSession.project),
LLDependedDiagnosticProvider
) {
override val diagnosticProvider: LLDiagnosticProvider
get() = LLDependedDiagnosticProvider
override fun getOrBuildFirFor(element: KtElement): FirElement? {
val psi = FirElementBuilder.getPsiAsFirElementSource(element) ?: return null
ktToFirMapping?.getFir(psi)?.let { return it }
@@ -36,10 +36,9 @@ abstract class LLFirResolveSession(
val moduleProvider: LLModuleProvider,
val moduleKindProvider: LLModuleKindProvider,
val sessionProvider: LLSessionProvider,
val scopeSessionProvider: LLScopeSessionProvider
val scopeSessionProvider: LLScopeSessionProvider,
val diagnosticProvider: LLDiagnosticProvider
) {
abstract val diagnosticProvider: LLDiagnosticProvider
val useSiteKtModule: KtModule
get() = moduleProvider.useSiteModule
@@ -14,11 +14,9 @@ internal class LLFirLibraryOrLibrarySourceResolvableResolveSession(
) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider,
moduleKindProvider = LLLibraryModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider
) {
override val diagnosticProvider: LLDiagnosticProvider
get() = LLEmptyDiagnosticProvider
}
sessionProvider = sessionProvider,
diagnosticProvider = LLEmptyDiagnosticProvider
)
private class LLLibraryModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind {
@@ -13,11 +13,9 @@ internal class LLFirNotUnderContentRootResolveSession(
) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider,
moduleKindProvider = LLNotUnderContentRootModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider
) {
override val diagnosticProvider: LLDiagnosticProvider
get() = LLEmptyDiagnosticProvider
}
sessionProvider = sessionProvider,
diagnosticProvider = LLEmptyDiagnosticProvider
)
private class LLNotUnderContentRootModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind {
@@ -34,12 +34,14 @@ import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
internal abstract class LLFirResolvableResolveSession(
moduleProvider: LLModuleProvider,
moduleKindProvider: LLModuleKindProvider,
sessionProvider: LLSessionProvider
sessionProvider: LLSessionProvider,
diagnosticProvider: LLDiagnosticProvider
) : LLFirResolveSession(
moduleProvider = moduleProvider,
moduleKindProvider = moduleKindProvider,
sessionProvider = sessionProvider,
scopeSessionProvider = LLDefaultScopeSessionProvider
scopeSessionProvider = LLDefaultScopeSessionProvider,
diagnosticProvider = diagnosticProvider
) {
override fun getOrBuildFirFor(element: KtElement): FirElement? {
val moduleComponents = getModuleComponentsForElement(element)
@@ -14,10 +14,9 @@ internal class LLFirScriptResolveSession(
) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider,
moduleKindProvider = LLScriptModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider
) {
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
}
sessionProvider = sessionProvider,
diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
)
private class LLScriptModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind {
@@ -17,10 +17,9 @@ internal class LLFirSourceResolveSession(
) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider,
moduleKindProvider = LLSourceModuleKindProvider,
sessionProvider = sessionProvider
) {
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
}
sessionProvider = sessionProvider,
diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
)
private object LLSourceModuleKindProvider : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind {