@Override
  protected LocalQuickFix @NotNull [] buildFixes(Object... infos) {
    final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)infos[0];
    final PsiClass callClass = PsiUtil.getContainingClass(methodCallExpression);
    final PsiMethod method = methodCallExpression.resolveMethod();
    if (method == null || callClass == null || MethodUtils.isOverriddenInHierarchy(method, callClass)) {
      return InspectionGadgetsFix.EMPTY_ARRAY;
    }
    final List<LocalQuickFix> fixes = new SmartList<>();
    if (!callClass.hasModifierProperty(PsiModifier.ABSTRACT)) {
      fixes.add(new MakeClassFinalFix(callClass));
    }
    if (!(method instanceof PsiCompiledElement) && !method.hasModifierProperty(PsiModifier.ABSTRACT)) {
      fixes.add(new MakeMethodFinalFix(method.getName()));
    }
    return fixes.toArray(LocalQuickFix.EMPTY_ARRAY);
  }
@Override
  protected LocalQuickFix @NotNull [] buildFixes(Object... infos)