From 01d852c006c757259128ba6c09b7344185ae295b Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Mon, 28 Sep 2020 00:25:18 -0700 Subject: [PATCH] FIR: carry annotations on delegated property accessors --- .../org/jetbrains/kotlin/fir/builder/ConversionUtils.kt | 8 ++++++++ .../codegen/box/annotations/delegatedPropertySetter.kt | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index 1ee99c877d1..de44f106edd 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -372,6 +372,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( delegate = delegateBuilder.build() if (stubMode) return if (getter == null || getter is FirDefaultPropertyAccessor) { + val annotations = getter?.annotations val returnTarget = FirFunctionTarget(null, isLambda = false) getter = buildPropertyAccessor { this.session = session @@ -395,11 +396,15 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( target = returnTarget } ) + if (annotations != null) { + this.annotations.addAll(annotations) + } }.also { returnTarget.bind(it) } } if (isVar && (setter == null || setter is FirDefaultPropertyAccessor)) { + val annotations = setter?.annotations setter = buildPropertyAccessor { this.session = session origin = FirDeclarationOrigin.Source @@ -436,6 +441,9 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( } } ) + if (annotations != null) { + this.annotations.addAll(annotations) + } } } } diff --git a/compiler/testData/codegen/box/annotations/delegatedPropertySetter.kt b/compiler/testData/codegen/box/annotations/delegatedPropertySetter.kt index 52595f5a26d..1cfbf75241e 100644 --- a/compiler/testData/codegen/box/annotations/delegatedPropertySetter.kt +++ b/compiler/testData/codegen/box/annotations/delegatedPropertySetter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME