[FIR] Make KotlinScopeProvider a session component

This commit is contained in:
Dmitriy Novozhilov
2021-09-24 17:29:37 +03:00
committed by TeamCityServer
parent 4f764c28cb
commit 270962e176
3 changed files with 12 additions and 2 deletions
@@ -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()