[FIR] Make KotlinScopeProvider a session component
This commit is contained in:
committed by
TeamCityServer
parent
4f764c28cb
commit
270962e176
+6
-1
@@ -76,6 +76,7 @@ internal object FirIdeSessionFactory {
|
||||
return session.apply session@{
|
||||
val moduleData = KtModuleBasedModuleData(module).apply { bindSession(this@session) }
|
||||
registerModuleData(moduleData)
|
||||
register(FirKotlinScopeProvider::class, scopeProvider)
|
||||
|
||||
val cache = ModuleFileCacheImpl(this)
|
||||
val firPhaseManager = IdeFirPhaseManager(FirLazyDeclarationResolver(firFileBuilder), cache, sessionInvalidator)
|
||||
@@ -182,12 +183,15 @@ internal object FirIdeSessionFactory {
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaSpecificResolveComponents()
|
||||
|
||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||
register(FirKotlinScopeProvider::class, kotlinScopeProvider)
|
||||
|
||||
val mainModuleData = KtModuleBasedModuleData(sourceModule).apply { bindSession(this@session) }
|
||||
|
||||
val classFileBasedSymbolProvider = JvmClassFileBasedSymbolProvider(
|
||||
this@session,
|
||||
moduleDataProvider = createModuleDataProvider(sourceModule, this),
|
||||
kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped),
|
||||
kotlinScopeProvider = kotlinScopeProvider,
|
||||
packagePartProvider = project.createPackagePartProviderForLibrary(searchScope),
|
||||
kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope),
|
||||
javaFacade = FirJavaFacade(
|
||||
@@ -241,6 +245,7 @@ internal object FirIdeSessionFactory {
|
||||
registerModuleData(moduleData)
|
||||
|
||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||
register(FirKotlinScopeProvider::class, kotlinScopeProvider)
|
||||
val symbolProvider = FirCompositeSymbolProvider(
|
||||
this,
|
||||
listOf(
|
||||
|
||||
@@ -143,6 +143,7 @@ object FirSessionFactory {
|
||||
registerJavaSpecificResolveComponents()
|
||||
|
||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||
register(FirKotlinScopeProvider::class, kotlinScopeProvider)
|
||||
|
||||
val firProvider = FirProviderImpl(this, kotlinScopeProvider)
|
||||
register(FirProvider::class, firProvider)
|
||||
@@ -209,6 +210,7 @@ object FirSessionFactory {
|
||||
registerCommonJavaComponents(projectEnvironment.getJavaModuleResolver())
|
||||
|
||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||
register(FirKotlinScopeProvider::class, kotlinScopeProvider)
|
||||
|
||||
val classFileBasedSymbolProvider = JvmClassFileBasedSymbolProvider(
|
||||
this,
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.scopes
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSessionComponent
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
@@ -28,7 +29,7 @@ class FirKotlinScopeProvider(
|
||||
useSiteSession: FirSession,
|
||||
scopeSession: ScopeSession
|
||||
) -> FirScope = { _, declaredMemberScope, _, _ -> declaredMemberScope }
|
||||
) : FirScopeProvider() {
|
||||
) : FirScopeProvider(), FirSessionComponent {
|
||||
override fun getUseSiteMemberScope(
|
||||
klass: FirClass,
|
||||
useSiteSession: FirSession,
|
||||
@@ -163,3 +164,5 @@ private fun FirClass.scopeForClassImpl(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
val FirSession.kotlinScopeProvider: FirKotlinScopeProvider by FirSession.sessionComponentAccessor()
|
||||
|
||||
Reference in New Issue
Block a user