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 9357802f1866..ed4ff0ed8531 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java @@ -1347,15 +1347,15 @@ public class GroovyAnnotator extends GroovyElementVisitor { public void visitExtendsClause(GrExtendsClause extendsClause) { GrTypeDefinition typeDefinition = (GrTypeDefinition)extendsClause.getParent(); - if (typeDefinition.isInterface()) { + if (typeDefinition.isAnnotationType()) { + myHolder.createErrorAnnotation(extendsClause, GroovyBundle.message("annotation.types.may.not.have.extends.clause")); + } + else if (typeDefinition.isInterface()) { checkReferenceList(myHolder, extendsClause, true, GroovyBundle.message("no.class.expected.here"), null); } else if (typeDefinition.isEnum()) { myHolder.createErrorAnnotation(extendsClause, GroovyBundle.message("enums.may.not.have.extends.clause")); } - else if (typeDefinition.isAnnotationType()) { - myHolder.createErrorAnnotation(extendsClause, GroovyBundle.message("annotation.types.may.not.have.extends.clause")); - } else { checkReferenceList(myHolder, extendsClause, false, GroovyBundle.message("no.interface.expected.here"), new ChangeExtendsImplementsQuickFix(typeDefinition)); @@ -1368,12 +1368,13 @@ public class GroovyAnnotator extends GroovyElementVisitor { public void visitImplementsClause(GrImplementsClause implementsClause) { GrTypeDefinition typeDefinition = (GrTypeDefinition)implementsClause.getParent(); - if (typeDefinition.isInterface()) { - myHolder.createErrorAnnotation(implementsClause, GroovyBundle.message("no.implements.clause.allowed.for.interface")); - } - else if (typeDefinition.isAnnotationType()) { + if (typeDefinition.isAnnotationType()) { myHolder.createErrorAnnotation(implementsClause, GroovyBundle.message("annotation.types.may.not.have.implements.clause")); } + else if (typeDefinition.isInterface()) { + myHolder.createErrorAnnotation(implementsClause, GroovyBundle.message("no.implements.clause.allowed.for.interface")) + .registerFix(new ChangeExtendsImplementsQuickFix(typeDefinition)); + } else { checkReferenceList(myHolder, implementsClause, true, GroovyBundle.message("no.class.expected.here"), new ChangeExtendsImplementsQuickFix(typeDefinition));