@Override
  public void visitImplementsClause(@NotNull GrImplementsClause implementsClause) {
    GrTypeDefinition typeDefinition = (GrTypeDefinition)implementsClause.getParent();

    if (typeDefinition.isAnnotationType()) {
      myHolder.newAnnotation(HighlightSeverity.ERROR, GroovyBundle.message("annotation.types.may.not.have.implements.clause")).create();
    }
    else if (GrTraitUtil.isInterface(typeDefinition)) {
      myHolder.newAnnotation(HighlightSeverity.ERROR, GroovyBundle.message("no.implements.clause.allowed.for.interface"))
        .withFix(new ChangeExtendsImplementsQuickFix(typeDefinition)).create();
    }
    else {
      checkReferenceList(myHolder, implementsClause, IS_INTERFACE, GroovyBundle.message("no.class.expected.here"),
                         typeDefinition instanceof GrRecordDefinition ? null : 
                         new ChangeExtendsImplementsQuickFix(typeDefinition).asIntention());
      checkForWildCards(myHolder, implementsClause);
    }
  }
@Override
  public void visitImplementsClause(@NotNull GrImplementsClause implementsClause)