FIR IDE: Lift extensions registration higher in session creation process

We want to do that before creating symbol providers
This commit is contained in:
Roman Golyshev
2022-02-11 09:34:25 +03:00
parent b1b99e1673
commit 8d9d46dae3
@@ -88,6 +88,7 @@ internal object LLFirSessionFactory {
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
registerCommonJavaComponents(JavaModuleResolver.getInstance(project)) registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
registerResolveComponents() registerResolveComponents()
registerJavaSpecificResolveComponents()
val provider = LLFirProvider( val provider = LLFirProvider(
project, project,
@@ -135,6 +136,15 @@ internal object LLFirSessionFactory {
} }
} }
FirSessionFactory.FirSessionConfigurator(this).apply {
if (isRootModule) {
registerExtendedCommonCheckers()
}
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
registerExtensions(extensionRegistrar.configure())
}
}.configure()
val dependencyProvider = DependentModuleProviders(this, dependentProviders) val dependencyProvider = DependentModuleProviders(this, dependentProviders)
register( register(
@@ -157,15 +167,6 @@ internal object LLFirSessionFactory {
register(FirDependenciesSymbolProvider::class, dependencyProvider) register(FirDependenciesSymbolProvider::class, dependencyProvider)
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
registerJavaSpecificResolveComponents()
FirSessionFactory.FirSessionConfigurator(this).apply {
if (isRootModule) {
registerExtendedCommonCheckers()
}
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
registerExtensions(extensionRegistrar.configure())
}
}.configure()
configureSession?.invoke(this) configureSession?.invoke(this)
} }
} }
@@ -305,6 +306,7 @@ internal object LLFirSessionFactory {
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
registerCommonJavaComponents(JavaModuleResolver.getInstance(project)) registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
registerResolveComponents() registerResolveComponents()
registerJavaSpecificResolveComponents()
val provider = LLFirProvider( val provider = LLFirProvider(
project, project,
@@ -339,6 +341,12 @@ internal object LLFirSessionFactory {
) )
} }
FirSessionFactory.FirSessionConfigurator(this).apply {
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
registerExtensions(extensionRegistrar.configure())
}
}.configure()
val dependencyProvider = DependentModuleProviders(this, dependentProviders) val dependencyProvider = DependentModuleProviders(this, dependentProviders)
register( register(
@@ -361,12 +369,6 @@ internal object LLFirSessionFactory {
register(FirDependenciesSymbolProvider::class, dependencyProvider) register(FirDependenciesSymbolProvider::class, dependencyProvider)
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
registerJavaSpecificResolveComponents()
FirSessionFactory.FirSessionConfigurator(this).apply {
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
registerExtensions(extensionRegistrar.configure())
}
}.configure()
configureSession?.invoke(this) configureSession?.invoke(this)
} }