[FIR] Get rid of FirStatusResolveTransformerAdapter
This commit is contained in:
+1
-14
@@ -17,29 +17,16 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement
|
|||||||
import org.jetbrains.kotlin.fir.extensions.extensionsService
|
import org.jetbrains.kotlin.fir.extensions.extensionsService
|
||||||
import org.jetbrains.kotlin.fir.extensions.statusTransformerExtensions
|
import org.jetbrains.kotlin.fir.extensions.statusTransformerExtensions
|
||||||
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
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.compose
|
||||||
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
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 {
|
fun <F : FirClass<F>> F.runStatusResolveForLocalClass(session: FirSession): F {
|
||||||
val transformer = FirStatusResolveTransformer(session)
|
val transformer = FirStatusResolveTransformer(session)
|
||||||
|
|
||||||
return this.transform<F, Nothing?>(transformer, null).single
|
return this.transform<F, Nothing?>(transformer, null).single
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FirStatusResolveTransformer(
|
class FirStatusResolveTransformer(
|
||||||
override val session: FirSession
|
override val session: FirSession
|
||||||
) : FirAbstractTreeTransformer<FirDeclarationStatus?>(phase = FirResolvePhase.STATUS) {
|
) : FirAbstractTreeTransformer<FirDeclarationStatus?>(phase = FirResolvePhase.STATUS) {
|
||||||
private val classes = mutableListOf<FirClass<*>>()
|
private val classes = mutableListOf<FirClass<*>>()
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ fun FirResolvePhase.createTransformerByPhase(session: FirSession, scopeSession:
|
|||||||
SUPER_TYPES -> FirSupertypeResolverTransformer(session, scopeSession)
|
SUPER_TYPES -> FirSupertypeResolverTransformer(session, scopeSession)
|
||||||
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
|
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
|
||||||
TYPES -> FirTypeResolveTransformer(session, scopeSession)
|
TYPES -> FirTypeResolveTransformer(session, scopeSession)
|
||||||
STATUS -> FirStatusResolveTransformerAdapter()
|
STATUS -> FirStatusResolveTransformer(session)
|
||||||
CONTRACTS -> FirContractResolveTransformerAdapter(scopeSession)
|
CONTRACTS -> FirContractResolveTransformerAdapter(scopeSession)
|
||||||
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter(scopeSession)
|
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter(scopeSession)
|
||||||
BODY_RESOLVE -> FirBodyResolveTransformerAdapter(scopeSession)
|
BODY_RESOLVE -> FirBodyResolveTransformerAdapter(scopeSession)
|
||||||
|
|||||||
Reference in New Issue
Block a user