[FIR] do not transform file annotation arguments before annotations phase

^KT-63042
This commit is contained in:
Dmitrii Gridin
2023-12-06 15:11:53 +01:00
committed by Space Team
parent daaf30e056
commit cf11e26755
3 changed files with 27 additions and 0 deletions
@@ -451,6 +451,15 @@ abstract class FirAbstractBodyResolveTransformerDispatcher(
FirDeclarationsResolveTransformer::transformDanglingModifierList,
)
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode,
): FirFileAnnotationsContainer = declarationTransformation(
fileAnnotationsContainer,
data,
FirDeclarationsResolveTransformer::transformFileAnnotationsContainer,
)
override fun transformProperty(
property: FirProperty,
data: ResolutionMode,
@@ -126,6 +126,16 @@ open class FirDeclarationsResolveTransformer(
return danglingModifierList
}
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode
): FirFileAnnotationsContainer {
if (implicitTypeOnly) return fileAnnotationsContainer
fileAnnotationsContainer.transformAnnotations(transformer, data)
return fileAnnotationsContainer
}
override fun transformProperty(property: FirProperty, data: ResolutionMode): FirProperty = whileAnalysing(session, property) {
require(property !is FirSyntheticProperty) { "Synthetic properties should not be processed by body transformers" }
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir.resolve.transformers.contracts
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription
@@ -321,6 +322,13 @@ abstract class FirAbstractContractResolveTransformerDispatcher(
return danglingModifierList
}
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode
): FirFileAnnotationsContainer {
return fileAnnotationsContainer
}
override fun transformErrorPrimaryConstructor(
errorPrimaryConstructor: FirErrorPrimaryConstructor,
data: ResolutionMode,