[FIR] Enable plugin phases if some extensions are registered
This commit is contained in:
committed by
TeamCityServer
parent
1d32d5c7d8
commit
8c11ea266a
@@ -80,7 +80,7 @@ class FirAnalyzerFacade(
|
|||||||
override fun runResolution(): List<FirFile> {
|
override fun runResolution(): List<FirFile> {
|
||||||
if (firFiles == null) buildRawFir()
|
if (firFiles == null) buildRawFir()
|
||||||
if (_scopeSession != null) return firFiles!!
|
if (_scopeSession != null) return firFiles!!
|
||||||
val resolveProcessor = FirTotalResolveProcessor(session, enablePluginPhases)
|
val resolveProcessor = FirTotalResolveProcessor(session)
|
||||||
resolveProcessor.process(firFiles!!)
|
resolveProcessor.process(firFiles!!)
|
||||||
_scopeSession = resolveProcessor.scopeSession
|
_scopeSession = resolveProcessor.scopeSession
|
||||||
return firFiles!!
|
return firFiles!!
|
||||||
|
|||||||
+7
-2
@@ -9,16 +9,21 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
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.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.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveProcessor
|
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.body.resolve.FirImplicitTypeBodyResolveProcessor
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolveProcessor
|
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolveProcessor
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.*
|
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.*
|
||||||
|
|
||||||
class FirTotalResolveProcessor(session: FirSession, enablePluginPhases: Boolean = false) {
|
class FirTotalResolveProcessor(session: FirSession) {
|
||||||
val scopeSession: ScopeSession = ScopeSession()
|
val scopeSession: ScopeSession = ScopeSession()
|
||||||
|
|
||||||
private val processors: List<FirResolveProcessor> = createAllCompilerResolveProcessors(session, scopeSession, enablePluginPhases)
|
private val processors: List<FirResolveProcessor> = createAllCompilerResolveProcessors(
|
||||||
|
session,
|
||||||
|
scopeSession,
|
||||||
|
pluginPhasesEnabled = session.extensionService.registeredExtensionsSize > 0
|
||||||
|
)
|
||||||
|
|
||||||
fun process(files: List<FirFile>) {
|
fun process(files: List<FirFile>) {
|
||||||
for (processor in processors) {
|
for (processor in processors) {
|
||||||
|
|||||||
Reference in New Issue
Block a user