From 2cb9d1f287b16735951e7dd674b5c2147599b306 Mon Sep 17 00:00:00 2001 From: Matthew Gharrity Date: Wed, 24 Mar 2021 12:15:02 -0400 Subject: [PATCH] KT-45676: fix backing field annotation resolve --- .../src/org/jetbrains/kotlin/resolve/BodyResolver.java | 5 +++++ compiler/testData/resolve/regressions/kt45676.resolve | 7 +++++++ .../org/jetbrains/kotlin/resolve/ResolveTestGenerated.java | 5 +++++ 3 files changed, 17 insertions(+) create mode 100644 compiler/testData/resolve/regressions/kt45676.resolve diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index 007ce88eb6a..c546761cf83 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -809,6 +809,11 @@ public class BodyResolver { resolvePropertyAccessors(c, property, propertyDescriptor); ForceResolveUtil.forceResolveAllContents(propertyDescriptor.getAnnotations()); + + FieldDescriptor backingField = propertyDescriptor.getBackingField(); + if (backingField != null) { + ForceResolveUtil.forceResolveAllContents(backingField.getAnnotations()); + } } private void resolvePropertyDeclarationBodies(@NotNull BodiesResolveContext c) { diff --git a/compiler/testData/resolve/regressions/kt45676.resolve b/compiler/testData/resolve/regressions/kt45676.resolve new file mode 100644 index 00000000000..c136ea1be56 --- /dev/null +++ b/compiler/testData/resolve/regressions/kt45676.resolve @@ -0,0 +1,7 @@ +// KT-45676: annotations on backing fields are missing their attribute values + +@Target(AnnotationTarget.FIELD) +annotation class MyFieldAnnotation~MyFieldAnnotation(String)~(val value: String) + +@`MyFieldAnnotation(String)`MyFieldAnnotation("SomeStringValue"`:kotlin::String`) +var myProperty = 0 diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java index fec1fd3a4bf..57386158086 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java @@ -428,6 +428,11 @@ public class ResolveTestGenerated extends AbstractResolveTest { runTest("compiler/testData/resolve/regressions/kt300.resolve"); } + @TestMetadata("kt45676.resolve") + public void testKt45676() throws Exception { + runTest("compiler/testData/resolve/regressions/kt45676.resolve"); + } + @TestMetadata("objectInsideFun.resolve") public void testObjectInsideFun() throws Exception { runTest("compiler/testData/resolve/regressions/objectInsideFun.resolve");