[FIR] Store dependencies symbol provider as separate session component

This commit is contained in:
Dmitriy Novozhilov
2021-05-21 11:28:53 +03:00
committed by teamcityserver
parent 1c5361dacd
commit ec1651df92
2 changed files with 9 additions and 2 deletions
@@ -160,6 +160,7 @@ object FirSessionFactory {
)
}
val dependenciesSymbolProvider = FirDependenciesSymbolProviderImpl(this)
register(
FirSymbolProvider::class,
FirCompositeSymbolProvider(
@@ -168,17 +169,21 @@ object FirSessionFactory {
firProvider.symbolProvider,
symbolProviderForBinariesFromIncrementalCompilation,
JavaSymbolProvider(this, moduleData, project, scope),
FirDependenciesSymbolProviderImpl(this),
dependenciesSymbolProvider,
)
)
)
register(
FirDependenciesSymbolProviderImpl::class,
dependenciesSymbolProvider
)
FirSessionConfigurator(this).apply {
registerCommonCheckers()
registerJvmCheckers()
init()
}.configure()
PsiElementFinder.EP.getPoint(project).registerExtension(FirJavaElementFinder(this, project), project)
}
}
@@ -8,10 +8,12 @@ package org.jetbrains.kotlin.fir.resolve
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.scopes.impl.FirDeclaredMemberScopeProvider
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
val FirSession.symbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor()
val FirSession.dependenciesSymbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor<FirDependenciesSymbolProviderImpl>()
val FirSession.firProvider: FirProvider by FirSession.sessionComponentAccessor()
val FirSession.correspondingSupertypesCache: FirCorrespondingSupertypesCache by FirSession.sessionComponentAccessor()
val FirSession.declaredMemberScopeProvider: FirDeclaredMemberScopeProvider by FirSession.sessionComponentAccessor()