[FIR] Don't register FirJavaElementFinder for common session

This commit is contained in:
Dmitriy Novozhilov
2022-02-15 17:21:50 +03:00
committed by teamcity
parent b47cc86c57
commit 44bfb6fde8
5 changed files with 17 additions and 5 deletions
@@ -201,6 +201,7 @@ object FirKotlinToJvmBytecodeCompiler {
platform: TargetPlatform,
analyzerServices: PlatformDependentAnalyzerServices,
sourceScope: AbstractProjectFileSearchScope,
needRegisterJavaElementFinder: Boolean,
dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {}
): FirSession {
return createSessionWithDependencies(
@@ -215,6 +216,7 @@ object FirKotlinToJvmBytecodeCompiler {
lookupTracker = moduleConfiguration.get(CommonConfigurationKeys.LOOKUP_TRACKER),
providerAndScopeForIncrementalCompilation,
firExtensionRegistrars,
needRegisterJavaElementFinder,
dependenciesConfigurator = {
dependencies(moduleConfiguration.jvmClasspathRoots.map { it.toPath() })
dependencies(moduleConfiguration.jvmModularRoots.map { it.toPath() })
@@ -238,7 +240,8 @@ object FirKotlinToJvmBytecodeCompiler {
"${module.getModuleName()}-common",
CommonPlatforms.defaultCommonPlatform,
CommonPlatformAnalyzerServices,
commonSourcesScope
commonSourcesScope,
needRegisterJavaElementFinder = false
)
}
@@ -246,7 +249,8 @@ object FirKotlinToJvmBytecodeCompiler {
module.getModuleName(),
JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices,
sourceScope
sourceScope,
needRegisterJavaElementFinder = true
) {
if (commonSession != null) {
sourceDependsOnDependencies(listOf(commonSession.moduleData))
@@ -85,6 +85,7 @@ object FirSessionFactory {
lookupTracker: LookupTracker?,
providerAndScopeForIncrementalCompilation: ProviderAndScopeForIncrementalCompilation?,
extensionRegistrars: List<FirExtensionRegistrar>,
needRegisterJavaElementFinder: Boolean,
dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {},
noinline sessionConfigurator: FirSessionConfigurator.() -> Unit = {},
): FirSession {
@@ -117,6 +118,7 @@ object FirSessionFactory {
extensionRegistrars,
languageVersionSettings = languageVersionSettings,
lookupTracker = lookupTracker,
needRegisterJavaElementFinder,
init = sessionConfigurator
)
}
@@ -130,6 +132,7 @@ object FirSessionFactory {
extensionRegistrars: List<FirExtensionRegistrar>,
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
lookupTracker: LookupTracker? = null,
needRegisterJavaElementFinder: Boolean,
init: FirSessionConfigurator.() -> Unit = {}
): FirSession {
return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{
@@ -191,8 +194,9 @@ object FirSessionFactory {
FirDependenciesSymbolProvider::class,
dependenciesSymbolProvider
)
projectEnvironment.registerAsJavaElementFinder(this)
if (needRegisterJavaElementFinder) {
projectEnvironment.registerAsJavaElementFinder(this)
}
}
}
@@ -93,6 +93,7 @@ class FirFrontendFacade(
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = FirExtensionRegistrar.getInstances(project),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = {
dependencies(configuration.jvmModularRoots.map { it.toPath() })
dependencies(configuration.jvmClasspathRoots.map { it.toPath() })
@@ -98,7 +98,8 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
librariesScope = PsiBasedProjectFileSearchScope(allProjectScope),
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList()
extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true
) {
configureSession()
getFirExtensions()?.let {
@@ -43,6 +43,7 @@ fun createSessionForTests(
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = {
friendDependencies(friendsPaths)
}
@@ -69,6 +70,7 @@ fun createSessionForTests(
lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = {
friendDependencies(friendsPaths)
}