FIR: mark declarations resolved to BODY_RESOLVE with BODY_RESOLVE phase in implicit body transformer

This commit is contained in:
Ilya Kirillov
2021-03-10 18:11:21 +01:00
parent ded234074d
commit fe207492b7
2 changed files with 7 additions and 2 deletions
@@ -14,13 +14,15 @@ import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer
abstract class FirAbstractPhaseTransformer<D>( abstract class FirAbstractPhaseTransformer<D>(
val transformerPhase: FirResolvePhase protected val baseTransformerPhase: FirResolvePhase
) : FirDefaultTransformer<D>() { ) : FirDefaultTransformer<D>() {
open val transformerPhase get() = baseTransformerPhase
abstract val session: FirSession abstract val session: FirSession
init { init {
assert(transformerPhase != FirResolvePhase.RAW_FIR) { assert(baseTransformerPhase != FirResolvePhase.RAW_FIR) {
"Raw FIR building shouldn't be done in phase transformer" "Raw FIR building shouldn't be done in phase transformer"
} }
} }
@@ -38,6 +38,9 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb
abstract var implicitTypeOnly: Boolean abstract var implicitTypeOnly: Boolean
internal set internal set
override val transformerPhase: FirResolvePhase
get() = if (implicitTypeOnly) baseTransformerPhase else FirResolvePhase.BODY_RESOLVE
final override val session: FirSession get() = components.session final override val session: FirSession get() = components.session
protected inline fun <T> withLocalScopeCleanup(crossinline l: () -> T): T { protected inline fun <T> withLocalScopeCleanup(crossinline l: () -> T): T {