From fe207492b79e6ec652f008e7ed27938ee6a6e2bd Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 10 Mar 2021 18:11:21 +0100 Subject: [PATCH] FIR: mark declarations resolved to BODY_RESOLVE with BODY_RESOLVE phase in implicit body transformer --- .../fir/resolve/transformers/FirAbstractPhaseTransformer.kt | 6 ++++-- .../body/resolve/FirAbstractBodyResolveTransformer.kt | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) 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 {