[FIR] Don't create FirDependenciesSymbolProvider without need

This commit is contained in:
Ivan Kochurkin
2022-09-30 21:48:52 +02:00
committed by Space Team
parent 9c6df5313a
commit 4d89eddbe8
5 changed files with 4 additions and 12 deletions
@@ -91,7 +91,7 @@ abstract class FirAbstractSessionFactory {
createProviders: (
FirSession, FirKotlinScopeProvider, FirSymbolProvider,
FirSwitchableExtensionDeclarationsSymbolProvider?,
FirDependenciesSymbolProviderImpl
FirDependenciesSymbolProvider
) -> List<FirSymbolProvider>
): FirSession {
return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{
@@ -129,11 +129,7 @@ abstract class FirAbstractSessionFactory {
register(FirSymbolProvider::class, FirCompositeSymbolProvider(this, providers))
generatedSymbolsProvider?.let { register(FirSwitchableExtensionDeclarationsSymbolProvider::class, it) }
register(
FirDependenciesSymbolProvider::class,
dependenciesSymbolProvider
)
register(FirDependenciesSymbolProvider::class, dependenciesSymbolProvider)
}
}
}
@@ -115,7 +115,6 @@ object FirSessionFactory : FirAbstractSessionFactory() {
),
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
OptionalAnnotationClassesProvider(session, dependencyList.moduleDataProvider, kotlinScopeProvider, packagePartProvider)
)
}
@@ -31,7 +31,8 @@ open class FirDependenciesSymbolProviderImpl(session: FirSession) : FirDependenc
protected open val dependencyProviders by lazy {
val moduleData = session.nullableModuleData ?: return@lazy emptyList()
val moduleData =
session.nullableModuleData ?: error("FirDependenciesSymbolProvider should not be created if there are no dependencies")
(moduleData.dependencies + moduleData.friendDependencies + moduleData.dependsOnDependencies)
.mapNotNull { session.sessionProvider?.getSession(it) }
.sortedBy { it.kind }
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
@@ -49,7 +48,6 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
listOf(
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
) + resolveJsLibraries(module, testServices, configuration).map {
KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, it)
}
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
@@ -40,7 +39,6 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
listOf(
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
)
})
}