[FIR] Store mapped jvm declarations in session component, share it between MPP modules

^KT-61640 Fixed

This change doesn't affect any tests in the moment, because it's part of
  bigger refactoring of proper storing IR declarations during FIR2IR
  conversion (KT-61637)

Without this change, there is one test break in branch for KT-61637:
- FirPsiBlackBoxCodegenTestGenerated.Multiplatform.K2.testJavaMethodWithTypeParameter
This commit is contained in:
Dmitriy Novozhilov
2023-09-01 15:35:55 +03:00
committed by Space Team
parent bb36beb364
commit fa4c6d55c1
5 changed files with 95 additions and 71 deletions
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.analysis.checkers.OptInLanguageVersionSettingsCh
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.java.enhancement.FirEnhancedSymbolsStorage
import org.jetbrains.kotlin.fir.session.*
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
@@ -30,7 +29,6 @@ import org.jetbrains.kotlin.load.kotlin.PackageAndMetadataPartProvider
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.CommonPlatforms
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.isCommon
import org.jetbrains.kotlin.platform.js.JsPlatforms
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.platform.konan.NativePlatforms
@@ -73,7 +71,7 @@ fun <F> prepareJvmSessions(
createProviderAndScopeForIncrementalCompilation: (List<F>) -> IncrementalCompilationContext?,
): List<SessionWithSources<F>> {
val javaSourcesScope = projectEnvironment.getSearchScopeForProjectJavaSources()
val enhancementSymbolsStorage = FirEnhancedSymbolsStorage(firCachesFactoryForCliMode)
val predefinedJavaComponents = FirSharableJavaComponents(firCachesFactoryForCliMode)
return prepareSessions(
files, configuration, rootModuleName, JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices, metadataCompilationMode = false, libraryList, isCommonSource, fileBelongsToModule,
@@ -87,7 +85,7 @@ fun <F> prepareJvmSessions(
librariesScope,
projectEnvironment.getPackagePartProvider(librariesScope),
configuration.languageVersionSettings,
predefinedEnhancementStorage = enhancementSymbolsStorage,
predefinedJavaComponents = predefinedJavaComponents,
registerExtraComponents = {},
)
}
@@ -103,7 +101,7 @@ fun <F> prepareJvmSessions(
configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER),
configuration.get(CommonConfigurationKeys.ENUM_WHEN_TRACKER),
configuration.get(CommonConfigurationKeys.IMPORT_TRACKER),
predefinedEnhancementStorage = enhancementSymbolsStorage,
predefinedJavaComponents = predefinedJavaComponents,
needRegisterJavaElementFinder = true,
registerExtraComponents = {},
sessionConfigurator,