From 60984699fef2ec1efc27d09e41795b82a4c2fc2d Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Thu, 11 Apr 2013 15:46:06 +0400 Subject: [PATCH] IDEA-104910 Groovy: normalize extends list doesn't suggest fix --- .../groovy/annotator/GroovyAnnotator.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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));