[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: ( createProviders: (
FirSession, FirKotlinScopeProvider, FirSymbolProvider, FirSession, FirKotlinScopeProvider, FirSymbolProvider,
FirSwitchableExtensionDeclarationsSymbolProvider?, FirSwitchableExtensionDeclarationsSymbolProvider?,
FirDependenciesSymbolProviderImpl FirDependenciesSymbolProvider
) -> List<FirSymbolProvider> ) -> List<FirSymbolProvider>
): FirSession { ): FirSession {
return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{ return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{
@@ -129,11 +129,7 @@ abstract class FirAbstractSessionFactory {
register(FirSymbolProvider::class, FirCompositeSymbolProvider(this, providers)) register(FirSymbolProvider::class, FirCompositeSymbolProvider(this, providers))
generatedSymbolsProvider?.let { register(FirSwitchableExtensionDeclarationsSymbolProvider::class, it) } 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), FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
OptionalAnnotationClassesProvider(session, dependencyList.moduleDataProvider, kotlinScopeProvider, packagePartProvider) OptionalAnnotationClassesProvider(session, dependencyList.moduleDataProvider, kotlinScopeProvider, packagePartProvider)
) )
} }
@@ -31,7 +31,8 @@ open class FirDependenciesSymbolProviderImpl(session: FirSession) : FirDependenc
protected open val dependencyProviders by lazy { 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) (moduleData.dependencies + moduleData.friendDependencies + moduleData.dependsOnDependencies)
.mapNotNull { session.sessionProvider?.getSession(it) } .mapNotNull { session.sessionProvider?.getSession(it) }
.sortedBy { it.kind } .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.calls.ConeCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider 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.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
@@ -49,7 +48,6 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
listOf( listOf(
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
) + resolveJsLibraries(module, testServices, configuration).map { ) + resolveJsLibraries(module, testServices, configuration).map {
KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, it) 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.calls.ConeCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider 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.FirCloneableSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory import org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory
@@ -40,7 +39,6 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
listOf( listOf(
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
FirDependenciesSymbolProviderImpl(session),
) )
}) })
} }