From 258bc62bacc74bfa7300e8328eb01bec85e95b23 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 9 Apr 2020 13:50:12 +0300 Subject: [PATCH] [FIR] Replace deprecation on transformer adapters with opt in annotation --- .../fir/resolve/transformers/FirStatusResolveTransformer.kt | 2 +- .../fir/resolve/transformers/FirTypeResolveTransformer.kt | 2 +- .../kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt | 4 ++++ .../body/resolve/FirBodyResolveTransformerAdapters.kt | 3 ++- .../transformers/body/resolve/FirImplicitBodyResolve.kt | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt index c55158d43883e..9bdfd35b327aa 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose import org.jetbrains.kotlin.fir.visitors.transformSingle -@Deprecated("Should be used just once from createTransformerByPhase", level = DeprecationLevel.WARNING) +@AdapterForResolvePhase class FirStatusResolveTransformerAdapter : FirTransformer() { override fun transformElement(element: E, data: Nothing?): CompositeTransformResult { error("Should not be called for ${element::class}, only for files") diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt index c6f6d188570ae..a00559ecf5755 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose -@Deprecated("Should be used just once from createTransformerByPhase", level = DeprecationLevel.WARNING) +@AdapterForResolvePhase class FirTypeResolveTransformerAdapter( private val scopeSession: ScopeSession ) : FirTransformer() { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt index 1648e1c3443e6..577e500c93693 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTyp import org.jetbrains.kotlin.fir.visitors.FirTransformer // TODO: add FirSession parameter +@OptIn(AdapterForResolvePhase::class) fun FirResolvePhase.createTransformerByPhase(scopeSession: ScopeSession): FirTransformer { return when (this) { RAW_FIR -> throw AssertionError("Raw FIR building phase does not have a transformer") @@ -25,3 +26,6 @@ fun FirResolvePhase.createTransformerByPhase(scopeSession: ScopeSession): FirTra BODY_RESOLVE -> FirBodyResolveTransformerAdapter(scopeSession) } } + +@RequiresOptIn(message = "Should be used just once from createTransformerByPhase") +annotation class AdapterForResolvePhase diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformerAdapters.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformerAdapters.kt index 7f5a87200aa20..9428170391c36 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformerAdapters.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformerAdapters.kt @@ -10,11 +10,12 @@ import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.fir.resolve.transformers.AdapterForResolvePhase import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose -@Deprecated("It is temp", level = DeprecationLevel.WARNING, replaceWith = ReplaceWith("TODO(\"что-то нормальное\")")) +@AdapterForResolvePhase class FirBodyResolveTransformerAdapter(private val scopeSession: ScopeSession) : FirTransformer() { override fun transformElement(element: E, data: Nothing?): CompositeTransformResult { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 7a3b38a8649ee..065aa63b3ce45 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.firProvider +import org.jetbrains.kotlin.fir.resolve.transformers.AdapterForResolvePhase import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator import org.jetbrains.kotlin.fir.resolve.transformers.TransformImplicitType import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol @@ -28,7 +29,7 @@ import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose -@Deprecated("It is temp", level = DeprecationLevel.WARNING, replaceWith = ReplaceWith("TODO(\"что-то нормальное\")")) +@AdapterForResolvePhase class FirImplicitTypeBodyResolveTransformerAdapter(private val scopeSession: ScopeSession) : FirTransformer() { private val implicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession()