[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.moduleProvider,
originalFirResolveSession.moduleKindProvider, originalFirResolveSession.moduleKindProvider,
originalFirResolveSession.sessionProvider, originalFirResolveSession.sessionProvider,
LLDependedScopeSessionProvider(originalFirResolveSession.project) LLDependedScopeSessionProvider(originalFirResolveSession.project),
LLDependedDiagnosticProvider
) { ) {
override val diagnosticProvider: LLDiagnosticProvider
get() = LLDependedDiagnosticProvider
override fun getOrBuildFirFor(element: KtElement): FirElement? { override fun getOrBuildFirFor(element: KtElement): FirElement? {
val psi = FirElementBuilder.getPsiAsFirElementSource(element) ?: return null val psi = FirElementBuilder.getPsiAsFirElementSource(element) ?: return null
ktToFirMapping?.getFir(psi)?.let { return it } ktToFirMapping?.getFir(psi)?.let { return it }
@@ -36,10 +36,9 @@ abstract class LLFirResolveSession(
val moduleProvider: LLModuleProvider, val moduleProvider: LLModuleProvider,
val moduleKindProvider: LLModuleKindProvider, val moduleKindProvider: LLModuleKindProvider,
val sessionProvider: LLSessionProvider, val sessionProvider: LLSessionProvider,
val scopeSessionProvider: LLScopeSessionProvider val scopeSessionProvider: LLScopeSessionProvider,
val diagnosticProvider: LLDiagnosticProvider
) { ) {
abstract val diagnosticProvider: LLDiagnosticProvider
val useSiteKtModule: KtModule val useSiteKtModule: KtModule
get() = moduleProvider.useSiteModule get() = moduleProvider.useSiteModule
@@ -14,11 +14,9 @@ internal class LLFirLibraryOrLibrarySourceResolvableResolveSession(
) : LLFirResolvableResolveSession( ) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider, moduleProvider = moduleProvider,
moduleKindProvider = LLLibraryModuleKindProvider(moduleProvider.useSiteModule), moduleKindProvider = LLLibraryModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider sessionProvider = sessionProvider,
) { diagnosticProvider = LLEmptyDiagnosticProvider
override val diagnosticProvider: LLDiagnosticProvider )
get() = LLEmptyDiagnosticProvider
}
private class LLLibraryModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider { private class LLLibraryModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind { override fun getKind(module: KtModule): KtModuleKind {
@@ -13,11 +13,9 @@ internal class LLFirNotUnderContentRootResolveSession(
) : LLFirResolvableResolveSession( ) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider, moduleProvider = moduleProvider,
moduleKindProvider = LLNotUnderContentRootModuleKindProvider(moduleProvider.useSiteModule), moduleKindProvider = LLNotUnderContentRootModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider sessionProvider = sessionProvider,
) { diagnosticProvider = LLEmptyDiagnosticProvider
override val diagnosticProvider: LLDiagnosticProvider )
get() = LLEmptyDiagnosticProvider
}
private class LLNotUnderContentRootModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider { private class LLNotUnderContentRootModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind { override fun getKind(module: KtModule): KtModuleKind {
@@ -34,12 +34,14 @@ import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
internal abstract class LLFirResolvableResolveSession( internal abstract class LLFirResolvableResolveSession(
moduleProvider: LLModuleProvider, moduleProvider: LLModuleProvider,
moduleKindProvider: LLModuleKindProvider, moduleKindProvider: LLModuleKindProvider,
sessionProvider: LLSessionProvider sessionProvider: LLSessionProvider,
diagnosticProvider: LLDiagnosticProvider
) : LLFirResolveSession( ) : LLFirResolveSession(
moduleProvider = moduleProvider, moduleProvider = moduleProvider,
moduleKindProvider = moduleKindProvider, moduleKindProvider = moduleKindProvider,
sessionProvider = sessionProvider, sessionProvider = sessionProvider,
scopeSessionProvider = LLDefaultScopeSessionProvider scopeSessionProvider = LLDefaultScopeSessionProvider,
diagnosticProvider = diagnosticProvider
) { ) {
override fun getOrBuildFirFor(element: KtElement): FirElement? { override fun getOrBuildFirFor(element: KtElement): FirElement? {
val moduleComponents = getModuleComponentsForElement(element) val moduleComponents = getModuleComponentsForElement(element)
@@ -14,10 +14,9 @@ internal class LLFirScriptResolveSession(
) : LLFirResolvableResolveSession( ) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider, moduleProvider = moduleProvider,
moduleKindProvider = LLScriptModuleKindProvider(moduleProvider.useSiteModule), moduleKindProvider = LLScriptModuleKindProvider(moduleProvider.useSiteModule),
sessionProvider = sessionProvider sessionProvider = sessionProvider,
) { diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider) )
}
private class LLScriptModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider { private class LLScriptModuleKindProvider(private val useSiteModule: KtModule) : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind { override fun getKind(module: KtModule): KtModuleKind {
@@ -17,10 +17,9 @@ internal class LLFirSourceResolveSession(
) : LLFirResolvableResolveSession( ) : LLFirResolvableResolveSession(
moduleProvider = moduleProvider, moduleProvider = moduleProvider,
moduleKindProvider = LLSourceModuleKindProvider, moduleKindProvider = LLSourceModuleKindProvider,
sessionProvider = sessionProvider sessionProvider = sessionProvider,
) { diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider)
override val diagnosticProvider = LLSourceDiagnosticProvider(moduleProvider, sessionProvider) )
}
private object LLSourceModuleKindProvider : LLModuleKindProvider { private object LLSourceModuleKindProvider : LLModuleKindProvider {
override fun getKind(module: KtModule): KtModuleKind { override fun getKind(module: KtModule): KtModuleKind {