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");