[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, platform: TargetPlatform,
analyzerServices: PlatformDependentAnalyzerServices, analyzerServices: PlatformDependentAnalyzerServices,
sourceScope: AbstractProjectFileSearchScope, sourceScope: AbstractProjectFileSearchScope,
needRegisterJavaElementFinder: Boolean,
dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {} dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {}
): FirSession { ): FirSession {
return createSessionWithDependencies( return createSessionWithDependencies(
@@ -215,6 +216,7 @@ object FirKotlinToJvmBytecodeCompiler {
lookupTracker = moduleConfiguration.get(CommonConfigurationKeys.LOOKUP_TRACKER), lookupTracker = moduleConfiguration.get(CommonConfigurationKeys.LOOKUP_TRACKER),
providerAndScopeForIncrementalCompilation, providerAndScopeForIncrementalCompilation,
firExtensionRegistrars, firExtensionRegistrars,
needRegisterJavaElementFinder,
dependenciesConfigurator = { dependenciesConfigurator = {
dependencies(moduleConfiguration.jvmClasspathRoots.map { it.toPath() }) dependencies(moduleConfiguration.jvmClasspathRoots.map { it.toPath() })
dependencies(moduleConfiguration.jvmModularRoots.map { it.toPath() }) dependencies(moduleConfiguration.jvmModularRoots.map { it.toPath() })
@@ -238,7 +240,8 @@ object FirKotlinToJvmBytecodeCompiler {
"${module.getModuleName()}-common", "${module.getModuleName()}-common",
CommonPlatforms.defaultCommonPlatform, CommonPlatforms.defaultCommonPlatform,
CommonPlatformAnalyzerServices, CommonPlatformAnalyzerServices,
commonSourcesScope commonSourcesScope,
needRegisterJavaElementFinder = false
) )
} }
@@ -246,7 +249,8 @@ object FirKotlinToJvmBytecodeCompiler {
module.getModuleName(), module.getModuleName(),
JvmPlatforms.unspecifiedJvmPlatform, JvmPlatforms.unspecifiedJvmPlatform,
JvmPlatformAnalyzerServices, JvmPlatformAnalyzerServices,
sourceScope sourceScope,
needRegisterJavaElementFinder = true
) { ) {
if (commonSession != null) { if (commonSession != null) {
sourceDependsOnDependencies(listOf(commonSession.moduleData)) sourceDependsOnDependencies(listOf(commonSession.moduleData))
@@ -85,6 +85,7 @@ object FirSessionFactory {
lookupTracker: LookupTracker?, lookupTracker: LookupTracker?,
providerAndScopeForIncrementalCompilation: ProviderAndScopeForIncrementalCompilation?, providerAndScopeForIncrementalCompilation: ProviderAndScopeForIncrementalCompilation?,
extensionRegistrars: List<FirExtensionRegistrar>, extensionRegistrars: List<FirExtensionRegistrar>,
needRegisterJavaElementFinder: Boolean,
dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {}, dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {},
noinline sessionConfigurator: FirSessionConfigurator.() -> Unit = {}, noinline sessionConfigurator: FirSessionConfigurator.() -> Unit = {},
): FirSession { ): FirSession {
@@ -117,6 +118,7 @@ object FirSessionFactory {
extensionRegistrars, extensionRegistrars,
languageVersionSettings = languageVersionSettings, languageVersionSettings = languageVersionSettings,
lookupTracker = lookupTracker, lookupTracker = lookupTracker,
needRegisterJavaElementFinder,
init = sessionConfigurator init = sessionConfigurator
) )
} }
@@ -130,6 +132,7 @@ object FirSessionFactory {
extensionRegistrars: List<FirExtensionRegistrar>, extensionRegistrars: List<FirExtensionRegistrar>,
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
lookupTracker: LookupTracker? = null, lookupTracker: LookupTracker? = null,
needRegisterJavaElementFinder: Boolean,
init: FirSessionConfigurator.() -> Unit = {} init: FirSessionConfigurator.() -> Unit = {}
): FirSession { ): FirSession {
return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{ return FirCliSession(sessionProvider, FirSession.Kind.Source).apply session@{
@@ -191,8 +194,9 @@ object FirSessionFactory {
FirDependenciesSymbolProvider::class, FirDependenciesSymbolProvider::class,
dependenciesSymbolProvider dependenciesSymbolProvider
) )
if (needRegisterJavaElementFinder) {
projectEnvironment.registerAsJavaElementFinder(this) projectEnvironment.registerAsJavaElementFinder(this)
}
} }
} }
@@ -93,6 +93,7 @@ class FirFrontendFacade(
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null, providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = FirExtensionRegistrar.getInstances(project), extensionRegistrars = FirExtensionRegistrar.getInstances(project),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = { dependenciesConfigurator = {
dependencies(configuration.jvmModularRoots.map { it.toPath() }) dependencies(configuration.jvmModularRoots.map { it.toPath() })
dependencies(configuration.jvmClasspathRoots.map { it.toPath() }) dependencies(configuration.jvmClasspathRoots.map { it.toPath() })
@@ -98,7 +98,8 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
librariesScope = PsiBasedProjectFileSearchScope(allProjectScope), librariesScope = PsiBasedProjectFileSearchScope(allProjectScope),
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null, providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList() extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true
) { ) {
configureSession() configureSession()
getFirExtensions()?.let { getFirExtensions()?.let {
@@ -43,6 +43,7 @@ fun createSessionForTests(
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null, providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList(), extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = { dependenciesConfigurator = {
friendDependencies(friendsPaths) friendDependencies(friendsPaths)
} }
@@ -69,6 +70,7 @@ fun createSessionForTests(
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null, providerAndScopeForIncrementalCompilation = null,
extensionRegistrars = emptyList(), extensionRegistrars = emptyList(),
needRegisterJavaElementFinder = true,
dependenciesConfigurator = { dependenciesConfigurator = {
friendDependencies(friendsPaths) friendDependencies(friendsPaths)
} }