diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirAbstractSessionFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirAbstractSessionFactory.kt index a9f7049acf1..809049441af 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirAbstractSessionFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirAbstractSessionFactory.kt @@ -116,11 +116,11 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje registerModuleData(moduleData) register(FirKotlinScopeProvider::class, scopeProvider) - registerIdeComponents(project) - registerCommonComponents(languageVersionSettings) + registerAllCommonComponents(languageVersionSettings) + registerCommonComponentsAfterExtensionsAreConfigured() registerJavaComponents(JavaModuleResolver.getInstance(project)) - registerResolveComponents() + val provider = LLFirProvider( this, @@ -197,12 +197,11 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje registerModuleData(moduleData) register(FirKotlinScopeProvider::class, scopeProvider) - registerIdeComponents(project) - registerCommonComponents(languageVersionSettings) + registerAllCommonComponents(languageVersionSettings) + registerCommonComponentsAfterExtensionsAreConfigured() registerJavaComponents(JavaModuleResolver.getInstance(project)) - registerResolveComponents() - registerDefaultComponents() + val ktFile = module.file as? KtFile @@ -268,10 +267,7 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje registerModuleData(moduleData) register(FirKotlinScopeProvider::class, scopeProvider) - registerIdeComponents(project) - registerCommonComponents(languageVersionSettings) - registerResolveComponents() - registerDefaultComponents() + registerAllCommonComponents(languageVersionSettings) val firProvider = LLFirProvider( this, @@ -357,11 +353,8 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje registerModuleData(moduleData) register(FirKotlinScopeProvider::class, scopeProvider) - registerIdeComponents(project) - registerCommonComponents(languageVersionSettings) + registerAllCommonComponents(languageVersionSettings) registerCommonComponentsAfterExtensionsAreConfigured() - registerResolveComponents() - registerDefaultComponents() val firProvider = LLFirProvider( this, @@ -490,10 +483,7 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje registerModuleData(moduleData) register(FirKotlinScopeProvider::class, scopeProvider) - registerIdeComponents(project) - registerCommonComponents(languageVersionSettings) - registerResolveComponents() - registerDefaultComponents() + registerAllCommonComponents(languageVersionSettings) val firProvider = LLFirProvider( this, @@ -636,6 +626,13 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje return LLFirModuleData(session) } + private fun LLFirSession.registerAllCommonComponents(languageVersionSettings: LanguageVersionSettings) { + registerIdeComponents(project) + registerCommonComponents(languageVersionSettings) + registerResolveComponents() + registerDefaultComponents() + } + /** * Merges dependency symbol providers of the same kind, and adds the result to the receiver [MutableList]. * See [mergeDependencySymbolProvidersInto] for more information on symbol provider merging.