@Override
  public void visitMethod(@NotNull PsiMethod method) {
    super.visitMethod(method);
    if (!hasErrorResults()) add(HighlightControlFlowUtil.checkUnreachableStatement(method.getBody()));
    if (!hasErrorResults()) add(HighlightMethodUtil.checkConstructorHandleSuperClassExceptions(method));
    if (!hasErrorResults()) add(HighlightMethodUtil.checkRecursiveConstructorInvocation(method));
    if (!hasErrorResults()) add(GenericsHighlightUtil.checkSafeVarargsAnnotation(method, myLanguageLevel));
    if (!hasErrorResults()) add(HighlightMethodUtil.checkRecordAccessorDeclaration(method));
    if (!hasErrorResults()) HighlightMethodUtil.checkRecordConstructorDeclaration(method, myErrorSink);

    PsiClass aClass = method.getContainingClass();
    if (!hasErrorResults() && method.isConstructor()) {
      add(HighlightClassUtil.checkThingNotAllowedInInterface(method, aClass));
    }
    if (!hasErrorResults() && method.hasModifierProperty(PsiModifier.DEFAULT)) {
      add(checkFeature(method, JavaFeature.EXTENSION_METHODS));
    }
    if (!hasErrorResults() && aClass != null && aClass.isInterface() && method.hasModifierProperty(PsiModifier.STATIC)) {
      add(checkFeature(method, JavaFeature.EXTENSION_METHODS));
    }
    if (!hasErrorResults() && aClass != null) {
      add(HighlightMethodUtil.checkDuplicateMethod(aClass, method, getDuplicateMethods(aClass)));
    }
  }
@Override
  public void visitMethod(@NotNull PsiMethod method)