IDEADEV-41451: Annotations on Groovy package/import keywords are error-highlighted
authorMaxim Medvedev <maxim.medvedev@jetbrains.com>
Sat, 21 Nov 2009 11:08:33 +0000 (14:08 +0300)
committerMaxim Medvedev <maxim.medvedev@jetbrains.com>
Sat, 21 Nov 2009 11:08:33 +0000 (14:08 +0300)
plugins/groovy/src/org/jetbrains/plugins/groovy/GroovyBundle.properties
plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java

index bb3efddebe0816f347dc46b4080b4fab5ebe540b..c6e589e3b510ee0eaeb6c6c794cb9c515998b685 100644 (file)
@@ -271,6 +271,7 @@ cannot.have.static.declarations=Inner classes cannot have static declarations
 unknown.class=unknown class ''{0}''
 is.not.enclosing.class=''{0}'' is not an enclosing class
 package.definition.cannot.have.modifiers=Package definiton cannot have modifiers
+import.statement.cannot.have.modifiers=Import statement cannot have modifiers
 inner.classes.are.not.supported=Inner classes are not supported in Groovy {0}
 anonymous.classes.are.not.supported=Anonymous classes are not supported in Groovy {0}
 undefined.label=Undefined label ''{0}''
index 6200be42e54dd446f651dd918558a20628f9affd..42f6fe361e85e0ee59632f23664fd70d8616f2e5 100644 (file)
@@ -171,7 +171,7 @@ public class GroovyAnnotator implements Annotator {
       }
     }
     else if (element instanceof GrImportStatement) {
-      checkAnnotationList(holder, ((GrImportStatement)element).getAnnotationList());
+      checkAnnotationList(holder, ((GrImportStatement)element).getAnnotationList(), GroovyBundle.message("import.statement.cannot.have.modifiers"));
     }
     else {
       final ASTNode node = element.getNode();
@@ -332,14 +332,16 @@ public class GroovyAnnotator implements Annotator {
       }
     }
     final GrModifierList modifierList = packageDefinition.getAnnotationList();
-    checkAnnotationList(holder, modifierList);
+    checkAnnotationList(holder, modifierList, GroovyBundle.message("package.definition.cannot.have.modifiers"));
   }
 
-  private static void checkAnnotationList(AnnotationHolder holder, @Nullable GrModifierList modifierList) {
+  private static void checkAnnotationList(AnnotationHolder holder, @Nullable GrModifierList modifierList, String message) {
     if (modifierList == null) return;
     final PsiElement[] modifiers = modifierList.getModifiers();
     for (PsiElement modifier : modifiers) {
-      holder.createErrorAnnotation(modifier, GroovyBundle.message("package.definition.cannot.have.modifiers"));
+      if (!(modifier instanceof PsiAnnotation)) {
+        holder.createErrorAnnotation(modifier, message);
+      }
     }
   }