diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt index 1af1a36c9c3..e70e1ca8b07 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt @@ -14,13 +14,15 @@ import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer abstract class FirAbstractPhaseTransformer( - val transformerPhase: FirResolvePhase + protected val baseTransformerPhase: FirResolvePhase ) : FirDefaultTransformer() { + open val transformerPhase get() = baseTransformerPhase + abstract val session: FirSession init { - assert(transformerPhase != FirResolvePhase.RAW_FIR) { + assert(baseTransformerPhase != FirResolvePhase.RAW_FIR) { "Raw FIR building shouldn't be done in phase transformer" } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt index 463315116c9..b68a8a70e65 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt @@ -38,6 +38,9 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb abstract var implicitTypeOnly: Boolean internal set + override val transformerPhase: FirResolvePhase + get() = if (implicitTypeOnly) baseTransformerPhase else FirResolvePhase.BODY_RESOLVE + final override val session: FirSession get() = components.session protected inline fun withLocalScopeCleanup(crossinline l: () -> T): T {