[FIR] Generate annotations to data class copy method parameters

#KT-57003 Fixed
This commit is contained in:
Kirill Rakhman
2023-05-15 13:45:27 +02:00
committed by Space Team
parent 5ae3a93084
commit 0ac02be534
25 changed files with 255 additions and 43 deletions
@@ -36,6 +36,8 @@ abstract class FirAnnotation : FirExpression() {
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
abstract fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?)
abstract fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef)
abstract fun replaceArgumentMapping(newArgumentMapping: FirAnnotationArgumentMapping)
@@ -40,6 +40,8 @@ abstract class FirAnnotationCall : FirAnnotation(), FirCall, FirResolvable {
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
abstract override fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?)
abstract override fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
@@ -43,6 +43,8 @@ abstract class FirErrorAnnotationCall : FirAnnotationCall(), FirDiagnosticHolder
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
abstract override fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?)
abstract override fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
internal class FirAnnotationCallImpl(
override val source: KtSourceElement?,
override val useSiteTarget: AnnotationUseSiteTarget?,
override var useSiteTarget: AnnotationUseSiteTarget?,
override var annotationTypeRef: FirTypeRef,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var argumentList: FirArgumentList,
@@ -77,6 +77,10 @@ internal class FirAnnotationCallImpl(
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {}
override fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?) {
useSiteTarget = newUseSiteTarget
}
override fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef) {
annotationTypeRef = newAnnotationTypeRef
}
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
internal class FirAnnotationImpl(
override val source: KtSourceElement?,
override val useSiteTarget: AnnotationUseSiteTarget?,
override var useSiteTarget: AnnotationUseSiteTarget?,
override var annotationTypeRef: FirTypeRef,
override var argumentMapping: FirAnnotationArgumentMapping,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
@@ -63,6 +63,10 @@ internal class FirAnnotationImpl(
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {}
override fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?) {
useSiteTarget = newUseSiteTarget
}
override fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef) {
annotationTypeRef = newAnnotationTypeRef
}
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
internal class FirErrorAnnotationCallImpl(
override val source: KtSourceElement?,
override val useSiteTarget: AnnotationUseSiteTarget?,
override var useSiteTarget: AnnotationUseSiteTarget?,
override var annotationTypeRef: FirTypeRef,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var argumentList: FirArgumentList,
@@ -79,6 +79,10 @@ internal class FirErrorAnnotationCallImpl(
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {}
override fun replaceUseSiteTarget(newUseSiteTarget: AnnotationUseSiteTarget?) {
useSiteTarget = newUseSiteTarget
}
override fun replaceAnnotationTypeRef(newAnnotationTypeRef: FirTypeRef) {
annotationTypeRef = newAnnotationTypeRef
}
@@ -519,7 +519,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
annotation.configure {
+field("useSiteTarget", annotationUseSiteTargetType, nullable = true)
+field("useSiteTarget", annotationUseSiteTargetType, nullable = true, withReplace = true)
+field("annotationTypeRef", typeRef, withReplace = true).withTransform()
+field("argumentMapping", annotationArgumentMapping, withReplace = true)
+typeArguments.withTransform()