FIR: join KotlinDeserializedJvmSymbolsProvider and JavaSymbolProvider

This allows reusing class finder results.
This commit is contained in:
pyos
2021-09-09 13:48:42 +02:00
committed by TeamCityServer
parent 0181c80ddb
commit cac0cf6a50
7 changed files with 97 additions and 100 deletions
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
import org.jetbrains.kotlin.fir.deserialization.FirDeserializationContext
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
import org.jetbrains.kotlin.fir.java.JavaSymbolProviderWrapper
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
@@ -150,7 +151,7 @@ internal object FirIdeSessionFactory {
this,
providers = listOf(
provider.symbolProvider,
JavaSymbolProvider(this@session, moduleData, project, searchScope),
JavaSymbolProviderWrapper(this@session, JavaSymbolProvider(this@session, moduleData, project, searchScope)),
),
dependencyProvider
)
@@ -214,10 +215,10 @@ internal object FirIdeSessionFactory {
kotlinScopeProvider,
packagePartProvider,
kotlinClassFinder,
javaClassFinder
javaClassFinder,
JavaSymbolProvider(this@session, mainModuleData, project, searchScope)
)
)
add(JavaSymbolProvider(this@session, mainModuleData, project, searchScope))
addAll((builtinsAndCloneableSession.symbolProvider as FirCompositeSymbolProvider).providers)
}
)
@@ -239,10 +240,11 @@ internal object FirIdeSessionFactory {
kotlinScopeProvider: FirKotlinScopeProvider,
packagePartProvider: PackagePartProvider,
kotlinClassFinder: KotlinClassFinder,
javaClassFinder: JavaClassFinder
javaClassFinder: JavaClassFinder,
javaSymbolProvider: JavaSymbolProvider
) : KotlinDeserializedJvmSymbolsProvider(
session, moduleDataProvider, kotlinScopeProvider, packagePartProvider, kotlinClassFinder,
javaClassFinder
javaClassFinder, javaSymbolProvider
) {
override fun getClass(
classId: ClassId,