diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/parser/parsing/auxiliary/annotations/Annotation.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/parser/parsing/auxiliary/annotations/Annotation.java index 28b8b93bfa55..3ddb9a7c32df 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/parser/parsing/auxiliary/annotations/Annotation.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/parser/parsing/auxiliary/annotations/Annotation.java @@ -47,7 +47,7 @@ public class Annotation { return false; } - if (ReferenceElement.parse(builder, false, true, true, false, false) == ReferenceElement.ReferenceElementResult.FAIL) { + if (ReferenceElement.parse(builder, false, false, true, false, false) == ReferenceElement.ReferenceElementResult.FAIL) { builder.error("Annotation name expected"); annMarker.drop(); return false; diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/AnnotationsParsingTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/AnnotationsParsingTest.groovy index 390e7bda416a..51ede52a89f3 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/AnnotationsParsingTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/AnnotationsParsingTest.groovy @@ -48,4 +48,6 @@ class AnnotationsParsingTest extends GroovyParsingTestCase { void testKeywordsAttributes() { doTest() } void testMess() { doTest() } + + void testTypeParameters() { doTest() } } diff --git a/plugins/groovy/testdata/parsing/groovy/annotations/typeParameters.test b/plugins/groovy/testdata/parsing/groovy/annotations/typeParameters.test new file mode 100644 index 000000000000..ddd8f79e4d96 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/annotations/typeParameters.test @@ -0,0 +1,42 @@ +@Deprecated T bar(T a) {} +----- +Groovy script + Method + Modifiers + Annotation + PsiElement(@)('@') + Reference element + PsiElement(identifier)('Deprecated') + Annotation arguments + + PsiWhiteSpace(' ') + Type parameter list + PsiElement(<)('<') + Type parameter + PsiElement(identifier)('T') + Type extends bounds list + + PsiElement(>)('>') + PsiWhiteSpace(' ') + Type element + Reference element + PsiElement(identifier)('T') + PsiWhiteSpace(' ') + PsiElement(identifier)('bar') + PsiElement(()('(') + Parameter list + Parameter + Modifiers + + Type element + Reference element + PsiElement(identifier)('T') + PsiWhiteSpace(' ') + PsiElement(identifier)('a') + PsiElement())(')') + Throw clause + + PsiWhiteSpace(' ') + Open block + PsiElement({)('{') + PsiElement(})('}') \ No newline at end of file