[FIR] Don't recreate transformer in FirContractResolveTransformerAdapter

This commit is contained in:
Dmitriy Novozhilov
2020-05-19 11:42:04 +03:00
parent c1080989b6
commit c4407d6d63
2 changed files with 4 additions and 6 deletions

View File

@@ -28,7 +28,7 @@ fun FirResolvePhase.createTransformerByPhase(session: FirSession, scopeSession:
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
TYPES -> FirTypeResolveTransformer(session, scopeSession)
STATUS -> FirStatusResolveTransformer(session)
CONTRACTS -> FirContractResolveTransformerAdapter(scopeSession)
CONTRACTS -> FirContractResolveTransformerAdapter(session, scopeSession)
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter(scopeSession)
BODY_RESOLVE -> FirBodyResolveTransformerAdapter(scopeSession)
}

View File

@@ -22,16 +22,14 @@ import org.jetbrains.kotlin.fir.visitors.compose
import org.jetbrains.kotlin.fir.visitors.transformSingle
@AdapterForResolvePhase
class FirContractResolveTransformerAdapter(private val scopeSession: ScopeSession) : FirTransformer<Nothing?>() {
class FirContractResolveTransformerAdapter(session: FirSession, scopeSession: ScopeSession) : FirTransformer<Nothing?>() {
private val transformer = FirContractResolveTransformer(session, scopeSession)
override fun <E : FirElement> transformElement(element: E, data: Nothing?): CompositeTransformResult<E> {
return element.compose()
}
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirDeclaration> {
val transformer = FirContractResolveTransformer(
file.session,
scopeSession
)
return file.transform(transformer, ResolutionMode.ContextIndependent)
}
}