@Override
      public void visitMethod(@NotNull PsiMethod method) {
        if (isIgnoreAccessors() && PropertyUtilBase.isSimplePropertyAccessor(method)) return;
        if (!compareVisibilities(method, getMethodVisibility())) return;
        if (UnusedSymbolUtil.isMethodUsed(project, file, method, helper)) return;
        String key;
        if (method.hasModifierProperty(PsiModifier.PRIVATE)) {
          key = method.isConstructor() ? "private.constructor.is.not.used" : "private.method.is.not.used";
        }
        else {
          key = method.isConstructor() ? "constructor.is.not.used" : "method.is.not.used";
        }
        int options = PsiFormatUtilBase.SHOW_TYPE | PsiFormatUtilBase.SHOW_FQ_CLASS_NAMES;
        String symbolName = HighlightMessageUtil.getSymbolName(method, PsiSubstitutor.EMPTY, options);
        QuickFixFactory factory = QuickFixFactory.getInstance();
        List<IntentionAction> fixes = new ArrayList<>();
        fixes.add(factory.createSafeDeleteFix(method));
        if (ApplicationManager.getApplication().isHeadlessEnvironment() && method.hasModifierProperty(PsiModifier.PRIVATE)) {
          fixes.add(factory.createDeletePrivateMethodFix(method).asIntention());
        }
        SpecialAnnotationsUtilBase.processUnknownAnnotations(method, annoName ->
          fixes.add(factory.createAddToDependencyInjectionAnnotationsFix(project, annoName)));
        registerProblem(method, JavaErrorBundle.message(key, symbolName), fixes);
      }
@Override
      public void visitMethod(@NotNull PsiMethod method)