From 38fe9171411a4a42f75264708a54db01ad97b052 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 18 May 2021 18:03:03 +0300 Subject: [PATCH] [FIR] Change order of IC symbol provider and dependency symbol provider This is semantically incorrect, but current behavior leads to problems in FIR bootstrap due to incorrect setup of IC provider. So this ordering change is a workaround for now --- .../jetbrains/kotlin/fir/session/FirSessionFactory.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt index ce478df7e55..dbbb04340d8 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactory.kt @@ -9,7 +9,6 @@ import com.intellij.openapi.project.Project import com.intellij.psi.PsiElementFinder import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.analyzer.common.CommonPlatformAnalyzerServices import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl import org.jetbrains.kotlin.fir.* @@ -119,9 +118,9 @@ object FirSessionFactory { this, listOfNotNull( firProvider.symbolProvider, - symbolProviderForBinariesFromIncrementalCompilation, JavaSymbolProvider(this, moduleData, project, scope), - FirDependenciesSymbolProviderImpl(this) + FirDependenciesSymbolProviderImpl(this), + symbolProviderForBinariesFromIncrementalCompilation, ) ) ) @@ -158,7 +157,7 @@ object FirSessionFactory { val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped) - val deserializedJvmSymbolsProvider = makeDeserializedJvmSymbolsProvider( + val deserializedProviderForIncrementalCompilation = makeDeserializedJvmSymbolsProvider( librarySession = this, moduleDataProvider, project, @@ -177,7 +176,7 @@ object FirSessionFactory { val symbolProvider = FirCompositeSymbolProvider( this, listOf( - deserializedJvmSymbolsProvider, + deserializedProviderForIncrementalCompilation, FirBuiltinSymbolProvider(this, builtinsModuleData, kotlinScopeProvider), FirCloneableSymbolProvider(this, builtinsModuleData, kotlinScopeProvider), javaSymbolProvider, // TODO: looks like it can be removed