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
abstract class FirAbstractPhaseTransformer<D>(
val transformerPhase: FirResolvePhase
protected val baseTransformerPhase: FirResolvePhase
) : FirDefaultTransformer<D>() {
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"
}
}
@@ -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 <T> withLocalScopeCleanup(crossinline l: () -> T): T {