diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/project/structure/LLFirNonUnderContentRootSessionFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/project/structure/LLFirNonUnderContentRootSessionFactory.kt index 0dd00ef44cd..8d61c92ed0e 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/project/structure/LLFirNonUnderContentRootSessionFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/project/structure/LLFirNonUnderContentRootSessionFactory.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.FirJvmTypeMapper import org.jetbrains.kotlin.fir.extensions.FirEmptyPredicateBasedProvider import org.jetbrains.kotlin.fir.extensions.FirPredicateBasedProvider import org.jetbrains.kotlin.fir.extensions.FirRegisteredPluginAnnotations -import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider +import org.jetbrains.kotlin.fir.resolve.providers.DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY import org.jetbrains.kotlin.fir.resolve.providers.FirProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped @@ -102,8 +102,7 @@ internal class LLFirNonUnderContentRootSessionFactory(private val project: Proje ) register(FirPredicateBasedProvider::class, FirEmptyPredicateBasedProvider) - register(FirDependenciesSymbolProvider::class, dependencyProvider) - register(FirDependenciesSymbolProvider::class, dependencyProvider) + register(DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY, dependencyProvider) register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) register(FirRegisteredPluginAnnotations::class, FirRegisteredPluginAnnotations.Empty) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirModuleWithDependenciesSymbolProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirModuleWithDependenciesSymbolProvider.kt index a764d50a369..84f7f5619cc 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirModuleWithDependenciesSymbolProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirModuleWithDependenciesSymbolProvider.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.providers import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.utils.collections.buildSmartList import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider @@ -85,7 +84,7 @@ internal class LLFirModuleWithDependenciesSymbolProvider( internal abstract class LLFirDependentModuleProviders( session: FirSession, -) : FirDependenciesSymbolProvider(session) { +) : FirSymbolProvider(session) { abstract val dependentProviders: List abstract val dependentSessions: List diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionFactory.kt index 23b4ececb51..c9202006d62 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionFactory.kt @@ -30,10 +30,7 @@ import org.jetbrains.kotlin.fir.analysis.extensions.additionalCheckers import org.jetbrains.kotlin.fir.backend.jvm.FirJvmTypeMapper import org.jetbrains.kotlin.fir.extensions.* import org.jetbrains.kotlin.fir.java.JavaSymbolProvider -import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider -import org.jetbrains.kotlin.fir.resolve.providers.FirProvider -import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider +import org.jetbrains.kotlin.fir.resolve.providers.* import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.session.* @@ -153,7 +150,7 @@ internal object LLFirSessionFactory { ) register(JavaSymbolProvider::class, javaSymbolProvider) - register(FirDependenciesSymbolProvider::class, dependencyProvider) + register(DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY, dependencyProvider) register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) register(LLFirFirClassByPsiClassProvider::class, LLFirFirClassByPsiClassProvider(this)) @@ -245,7 +242,7 @@ internal object LLFirSessionFactory { ) register(JavaSymbolProvider::class, javaSymbolProvider) - register(FirDependenciesSymbolProvider::class, dependencyProvider) + register(DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY, dependencyProvider) register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) configureSession?.invoke(this) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirAbstractSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirAbstractSessionFactory.kt index bcd9d13cfc5..7f023a05867 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirAbstractSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirAbstractSessionFactory.kt @@ -116,7 +116,7 @@ abstract class FirAbstractSessionFactory { register(FirSymbolProvider::class, FirCompositeSymbolProvider(this, providers)) generatedSymbolsProvider?.let { register(FirSwitchableExtensionDeclarationsSymbolProvider::class, it) } - register(FirDependenciesSymbolProvider::class, dependenciesSymbolProvider) + register(DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY, dependenciesSymbolProvider) } } } \ No newline at end of file diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt index f37eecb1ead..91bee3e2295 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt @@ -57,8 +57,6 @@ abstract class FirSymbolProvider(val session: FirSession) : FirSessionComponent abstract fun getPackage(fqName: FqName): FqName? // TODO: Replace to symbol sometime } -abstract class FirDependenciesSymbolProvider(session: FirSession) : FirSymbolProvider(session) - private fun FirSymbolProvider.getClassDeclaredMemberScope(classId: ClassId): FirScope? { val classSymbol = getClassLikeSymbolByClassId(classId) as? FirRegularClassSymbol ?: return null return session.declaredMemberScope(classSymbol.fir) @@ -90,4 +88,9 @@ fun FirSymbolProvider.getRegularClassSymbolByClassId(classId: ClassId): FirRegul } val FirSession.symbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor() -val FirSession.dependenciesSymbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor() + +const val DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY: String = "org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider" + +val FirSession.dependenciesSymbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor( + DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY +) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirDependenciesSymbolProviderImpl.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirDependenciesSymbolProviderImpl.kt index 9f8d9ce004e..6e42dcb2794 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirDependenciesSymbolProviderImpl.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirDependenciesSymbolProviderImpl.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @ThreadSafeMutableState -open class FirDependenciesSymbolProviderImpl(session: FirSession) : FirDependenciesSymbolProvider(session) { +open class FirDependenciesSymbolProviderImpl(session: FirSession) : FirSymbolProvider(session) { private val classCache = session.firCachesFactory.createCache(::computeClass) private val topLevelCallableCache = session.firCachesFactory.createCache(::computeTopLevelCallables) private val topLevelFunctionCache = session.firCachesFactory.createCache(::computeTopLevelFunctions)