FIR: drop pluginPhase special parameter

This commit is contained in:
Mikhail Glukhikh
2022-03-01 10:47:57 +03:00
committed by Space
parent d054976389
commit 9aaf7b7d24
4 changed files with 9 additions and 16 deletions
@@ -59,7 +59,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
.getOrBuildFirFile(ktFile)
.findResolveMe()
for (currentPhase in FirResolvePhase.values()) {
if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
if (currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
declarationToResolve.ensureResolved(currentPhase)
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
resultBuilder.append("\n${currentPhase.name}:\n")
@@ -9,7 +9,6 @@ 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
@@ -21,8 +20,7 @@ class FirTotalResolveProcessor(session: FirSession) {
private val processors: List<FirResolveProcessor> = createAllCompilerResolveProcessors(
session,
scopeSession,
pluginPhasesEnabled = session.extensionService.registeredExtensionsSize > 0
scopeSession
)
fun process(files: List<FirFile>) {
@@ -45,23 +43,21 @@ class FirTotalResolveProcessor(session: FirSession) {
fun createAllCompilerResolveProcessors(
session: FirSession,
scopeSession: ScopeSession? = null,
pluginPhasesEnabled: Boolean = false
scopeSession: ScopeSession? = null
): List<FirResolveProcessor> {
return createAllResolveProcessors(scopeSession, pluginPhasesEnabled) {
return createAllResolveProcessors(scopeSession) {
createCompilerProcessorByPhase(session, it)
}
}
private inline fun <T : FirResolveProcessor> createAllResolveProcessors(
scopeSession: ScopeSession? = null,
pluginPhasesEnabled: Boolean,
creator: FirResolvePhase.(ScopeSession) -> T
): List<T> {
@Suppress("NAME_SHADOWING")
val scopeSession = scopeSession ?: ScopeSession()
val phases = FirResolvePhase.values().filter {
!it.noProcessor && if (!pluginPhasesEnabled) !it.pluginPhase else true
!it.noProcessor
}
return phases.map { it.creator(scopeSession) }
}
@@ -5,11 +5,11 @@
package org.jetbrains.kotlin.fir.declarations
enum class FirResolvePhase(val pluginPhase: Boolean = false, val noProcessor: Boolean = false) {
enum class FirResolvePhase(val noProcessor: Boolean = false) {
RAW_FIR(noProcessor = true),
IMPORTS,
ANNOTATIONS_FOR_PLUGINS(pluginPhase = true),
COMPANION_GENERATION(pluginPhase = true),
ANNOTATIONS_FOR_PLUGINS,
COMPANION_GENERATION,
SUPER_TYPES,
SEALED_CLASS_INHERITORS,
TYPES,
@@ -74,14 +74,11 @@ abstract class AbstractKtDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
get() = File(absolutePath.replace(".kt", ".dot"))
}
protected open val pluginPhasesEnabled: Boolean
get() = false
override fun runAnalysis(testDataFile: File, testFiles: List<TestFile>, firFilesPerSession: Map<FirSession, List<FirFile>>) {
for ((session, firFiles) in firFilesPerSession) {
doFirResolveTestBench(
firFiles,
createAllCompilerResolveProcessors(session, pluginPhasesEnabled = pluginPhasesEnabled),
createAllCompilerResolveProcessors(session),
gc = false
)
}