@Override public void visitMethod(@NotNull RefMethod method) {
        RefClass refClass = method.getOwnerClass();
        if (method.isExternalOverride()) {
          String classOrInterface = HTMLJavaHTMLComposer.getClassOrInterface(Objects.requireNonNull(refClass), false);
          buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis22", classOrInterface));
        } else if (method.isStatic() || method.isConstructor()) {
          int nRefs = method.getInReferences().size();
          if (method.isConstructor()) {
            if (nRefs == 0) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis26.constructor"));
            } else if (method.isConstructor() && ((RefMethodImpl)method).isSuspiciousRecursive()) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis27.constructor"));
            } else if (nRefs == 1) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis28.constructor"));
            } else {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis29.constructor", nRefs) );
            }
          } else {
            if (nRefs == 0) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis26.method"));
            } else if (method.isConstructor() && ((RefMethodImpl)method).isSuspiciousRecursive()) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis27.method"));
            } else if (nRefs == 1) {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis28.method"));
            } else {
              buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis29.method", nRefs) );
            }
          }
        } else if (refClass instanceof RefClassImpl && ((RefClassImpl)refClass).isSuspicious() && !refClass.isUtilityClass()) {
          if (method.isAbstract() && !refClass.isInterface()) {
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis14"));
          } else {
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis15"));
          }
        } else {
          int nOwnRefs = method.getInReferences().size();
          int nSuperRefs = getSuperRefsCount(method);
          int nDerivedRefs = getDerivedRefsCount(method);

          if (nOwnRefs == 0 && nSuperRefs == 0 && nDerivedRefs == 0) {
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis16"));
          } else if (nDerivedRefs > 0 && nSuperRefs == 0 && nOwnRefs == 0) {
            String classOrInterface = refClass == null ? "" : HTMLJavaHTMLComposer.getClassOrInterface(refClass, false);
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis21", classOrInterface));
          } else if (((RefMethodImpl)method).isSuspiciousRecursive()) {
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis17"));
          } else {
            buf.append(AnalysisBundle.message("inspection.dead.code.problem.synopsis18"));
          }
        }
      }
@Override public void visitMethod(@NotNull RefMethod method)