diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionCache.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionCache.kt index 19ab4b85e0d..23b6754596b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionCache.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirSessionCache.kt @@ -154,9 +154,10 @@ internal class LLFirSessionCache(private val project: Project) { registerCompilerPluginExtensions(project, module) registerCommonComponentsAfterExtensionsAreConfigured() - val switchableExtensionDeclarationsSymbolProvider = FirSwitchableExtensionDeclarationsSymbolProvider.create(session)?.also { - register(FirSwitchableExtensionDeclarationsSymbolProvider::class, it) - } + val switchableExtensionDeclarationsSymbolProvider = + FirSwitchableExtensionDeclarationsSymbolProvider.createIfNeeded(session)?.also { + register(FirSwitchableExtensionDeclarationsSymbolProvider::class, it) + } val dependencyProvider = LLFirDependenciesSymbolProvider(this, buildList { addDependencySymbolProvidersTo(session, dependencies, 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 e17efdf03c5..206f2974009 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 @@ -111,7 +111,7 @@ abstract class FirAbstractSessionFactory { registerCommonComponentsAfterExtensionsAreConfigured() val dependencyProviders = computeDependencyProviderList(moduleData) - val generatedSymbolsProvider = FirSwitchableExtensionDeclarationsSymbolProvider.create(this) + val generatedSymbolsProvider = FirSwitchableExtensionDeclarationsSymbolProvider.createIfNeeded(this) val syntheticFunctionInterfaceProvider = FirExtensionSyntheticFunctionInterfaceProvider.createIfNeeded(this, moduleData, kotlinScopeProvider) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt index c1ab2e831ce..4995779f44d 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt @@ -5,10 +5,12 @@ package org.jetbrains.kotlin.fir.extensions -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSessionComponent import org.jetbrains.kotlin.fir.caches.* import org.jetbrains.kotlin.fir.declarations.validate import org.jetbrains.kotlin.fir.ownerGenerator +import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider @@ -28,7 +30,7 @@ class FirExtensionDeclarationsSymbolProvider private constructor( private val extensions: List ) : FirSymbolProvider(session), FirSessionComponent { companion object { - fun create(session: FirSession): FirExtensionDeclarationsSymbolProvider? { + fun createIfNeeded(session: FirSession): FirExtensionDeclarationsSymbolProvider? { val extensions = session.extensionService.declarationGenerators if (extensions.isEmpty()) return null return FirExtensionDeclarationsSymbolProvider(session, session.firCachesFactory, extensions) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt index eb801189346..24dbcd4e4f1 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt @@ -8,7 +8,10 @@ package org.jetbrains.kotlin.fir.extensions import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -24,9 +27,8 @@ class FirSwitchableExtensionDeclarationsSymbolProvider private constructor( private val delegate: FirExtensionDeclarationsSymbolProvider ) : FirSymbolProvider(delegate.session) { companion object { - fun create(session: FirSession): FirSwitchableExtensionDeclarationsSymbolProvider? { - return FirExtensionDeclarationsSymbolProvider.create(session)?.let { FirSwitchableExtensionDeclarationsSymbolProvider(it) } - } + fun createIfNeeded(session: FirSession): FirSwitchableExtensionDeclarationsSymbolProvider? = + FirExtensionDeclarationsSymbolProvider.createIfNeeded(session)?.let { FirSwitchableExtensionDeclarationsSymbolProvider(it) } } private var disabled: Boolean = false