[FIR] Get rid of FirStatusResolveTransformerAdapter

This commit is contained in:
Dmitriy Novozhilov
2020-05-19 11:36:31 +03:00
parent 93992d1d75
commit 329af65996
2 changed files with 2 additions and 15 deletions
@@ -17,29 +17,16 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.extensions.extensionsService
import org.jetbrains.kotlin.fir.extensions.statusTransformerExtensions
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.compose
import org.jetbrains.kotlin.fir.visitors.transformSingle
@AdapterForResolvePhase
class FirStatusResolveTransformerAdapter : FirTransformer<Nothing?>() {
override fun <E : FirElement> transformElement(element: E, data: Nothing?): CompositeTransformResult<E> {
error("Should not be called for ${element::class}, only for files")
}
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirDeclaration> {
val transformer = FirStatusResolveTransformer(file.session)
return file.transform(transformer, null)
}
}
fun <F : FirClass<F>> F.runStatusResolveForLocalClass(session: FirSession): F {
val transformer = FirStatusResolveTransformer(session)
return this.transform<F, Nothing?>(transformer, null).single
}
private class FirStatusResolveTransformer(
class FirStatusResolveTransformer(
override val session: FirSession
) : FirAbstractTreeTransformer<FirDeclarationStatus?>(phase = FirResolvePhase.STATUS) {
private val classes = mutableListOf<FirClass<*>>()
@@ -27,7 +27,7 @@ fun FirResolvePhase.createTransformerByPhase(session: FirSession, scopeSession:
SUPER_TYPES -> FirSupertypeResolverTransformer(session, scopeSession)
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
TYPES -> FirTypeResolveTransformer(session, scopeSession)
STATUS -> FirStatusResolveTransformerAdapter()
STATUS -> FirStatusResolveTransformer(session)
CONTRACTS -> FirContractResolveTransformerAdapter(scopeSession)
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter(scopeSession)
BODY_RESOLVE -> FirBodyResolveTransformerAdapter(scopeSession)