void (AnnotationHolder holder, GrTypeDefinition typeDefinition) { if (typeDefinition.hasModifierProperty(PsiModifier.ABSTRACT)) return; if (typeDefinition.isAnnotationType()) return; if (typeDefinition instanceof GrTypeParameter) return; PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(typeDefinition); if (abstractMethod == null) return; String notImplementedMethodName = abstractMethod.getName(); final TextRange range = GrHighlightUtil.getClassHeaderTextRange(typeDefinition); String message = GroovyBundle.message("method.is.not.implemented", notImplementedMethodName); AnnotationBuilder builder = holder.newAnnotation(HighlightSeverity.ERROR, message) .range(range); registerImplementsMethodsFix(typeDefinition, abstractMethod, builder, message, range).create(); }