diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationBuilder.kt index 6e74c137a03..7ba1ca5964b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationBuilder.kt @@ -63,3 +63,17 @@ inline fun buildAnnotation(init: FirAnnotationBuilder.() -> Unit): FirAnnotation } return FirAnnotationBuilder().apply(init).build() } + +@OptIn(ExperimentalContracts::class) +inline fun buildAnnotationCopy(original: FirAnnotation, init: FirAnnotationBuilder.() -> Unit): FirAnnotation { + contract { + callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) + } + val copyBuilder = FirAnnotationBuilder() + copyBuilder.source = original.source + copyBuilder.useSiteTarget = original.useSiteTarget + copyBuilder.annotationTypeRef = original.annotationTypeRef + copyBuilder.argumentMapping = original.argumentMapping + copyBuilder.typeArguments.addAll(original.typeArguments) + return copyBuilder.apply(init).build() +} diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index ac12da0e399..501b242fb80 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -123,6 +123,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree withCopy() } + builder(annotation) { + withCopy() + } + builder(annotationCall) { parents += callBuilder default("argumentList") {