diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java index 748f7c8bdc0b..a544a9c263fc 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java @@ -1430,6 +1430,7 @@ public class GroovyAnnotator extends GroovyElementVisitor { private boolean checkAnnotationAttributeValue(GrAnnotationMemberValue value, PsiElement toHighlight) { if (value instanceof GrLiteral) return false; if (value instanceof GrClosableBlock) return false; + if (value instanceof GrAnnotation) return false; if (value instanceof GrReferenceExpression) { PsiElement resolved = ((GrReferenceExpression)value).resolve(); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy index 92331f6b462f..23ac9364cf50 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy @@ -1600,4 +1600,22 @@ def groovy2 = '''print 'abc\\\\' ''' """) } + + void testAnnotationAsAnnotationValue() { + testHighlighting('''\ +@interface A {} +@interface B { + A[] foo() +} +@interface C { + A foo() +} + +@B(foo = @A) +@B(foo = [@A]) +@C(foo = @A) +@C(foo = 2) +def foo +''') + } } \ No newline at end of file