void (@NotNull PsiAnnotation annotation) { super.visitAnnotation(annotation); if (!hasErrorResults()) add(checkFeature(annotation, HighlightingFeature.ANNOTATIONS)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkApplicability(annotation, myLanguageLevel, myFile)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkAnnotationType(annotation)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkMissingAttributes(annotation)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkTargetAnnotationDuplicates(annotation)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkDuplicateAnnotations(annotation, myLanguageLevel)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkFunctionalInterface(annotation, myLanguageLevel)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkInvalidAnnotationOnRecordComponent(annotation)); if (!hasErrorResults()) add(AnnotationsHighlightUtil.checkRepeatableAnnotation(annotation)); if (CommonClassNames.JAVA_LANG_OVERRIDE.equals(annotation.getQualifiedName())) { PsiAnnotationOwner owner = annotation.getOwner(); PsiElement parent = owner instanceof PsiModifierList ? ((PsiModifierList)owner).getParent() : null; if (parent instanceof PsiMethod) { add(GenericsHighlightUtil.checkOverrideAnnotation((PsiMethod)parent, annotation, myLanguageLevel)); } } }