FIR: Pull creation of JavaClassConverter to session factory

This commit is contained in:
Denis.Zharkov
2021-09-14 12:37:00 +03:00
committed by TeamCityServer
parent b6e3399cbd
commit 1fc2f13a35
6 changed files with 35 additions and 19 deletions
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.fir.caches.FirCachesFactory
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
import org.jetbrains.kotlin.fir.java.JavaClassConverter
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider
@@ -138,7 +139,12 @@ internal object FirIdeSessionFactory {
this,
providers = listOf(
provider.symbolProvider,
JavaSymbolProvider(this, moduleData, project.createJavaClassFinder(contentScope)),
JavaSymbolProvider(
this,
JavaClassConverter(
this, moduleData, project.createJavaClassFinder(contentScope)
)
),
),
dependencyProvider
)
@@ -176,13 +182,17 @@ internal object FirIdeSessionFactory {
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
registerJavaSpecificResolveComponents()
val mainModuleData = KtModuleBasedModuleData(sourceModule).apply { bindSession(this@session) }
val kotlinSymbolProvider = KotlinDeserializedJvmSymbolsProvider(
this@session,
moduleDataProvider = createModuleDataProvider(sourceModule, this),
kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped),
packagePartProvider = project.createPackagePartProviderForLibrary(searchScope),
kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope),
javaClassFinder = project.createJavaClassFinder(searchScope)
javaClassConverter = JavaClassConverter(
this@session, mainModuleData, project.createJavaClassFinder(searchScope)
)
)
val symbolProvider = FirCompositeSymbolProvider(this, listOf(kotlinSymbolProvider, builtinsAndCloneableSession.symbolProvider))
register(FirProvider::class, FirIdeLibrariesSessionProvider(symbolProvider))