From 8c11ea266adc5a2385ff766a9adaf37f697d823b Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 2 Dec 2021 10:47:58 +0300 Subject: [PATCH] [FIR] Enable plugin phases if some extensions are registered --- .../jetbrains/kotlin/fir/analysis/FirAnalyzerFacade.kt | 2 +- .../fir/resolve/transformers/FirTotalResolveProcessor.kt | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/analysis/FirAnalyzerFacade.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/analysis/FirAnalyzerFacade.kt index 8d25ea15dfa..2c043bf950e 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/analysis/FirAnalyzerFacade.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/analysis/FirAnalyzerFacade.kt @@ -80,7 +80,7 @@ class FirAnalyzerFacade( override fun runResolution(): List { if (firFiles == null) buildRawFir() if (_scopeSession != null) return firFiles!! - val resolveProcessor = FirTotalResolveProcessor(session, enablePluginPhases) + val resolveProcessor = FirTotalResolveProcessor(session) resolveProcessor.process(firFiles!!) _scopeSession = resolveProcessor.scopeSession return firFiles!! diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTotalResolveProcessor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTotalResolveProcessor.kt index 16904d8d289..c9a2c682bdd 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTotalResolveProcessor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTotalResolveProcessor.kt @@ -9,16 +9,21 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase.* +import org.jetbrains.kotlin.fir.extensions.extensionService import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveProcessor import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveProcessor import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolveProcessor import org.jetbrains.kotlin.fir.resolve.transformers.plugin.* -class FirTotalResolveProcessor(session: FirSession, enablePluginPhases: Boolean = false) { +class FirTotalResolveProcessor(session: FirSession) { val scopeSession: ScopeSession = ScopeSession() - private val processors: List = createAllCompilerResolveProcessors(session, scopeSession, enablePluginPhases) + private val processors: List = createAllCompilerResolveProcessors( + session, + scopeSession, + pluginPhasesEnabled = session.extensionService.registeredExtensionsSize > 0 + ) fun process(files: List) { for (processor in processors) {