@Override
  protected List<PsiMethod> computeCallers() {
    final PsiReference[] refs = MethodReferencesSearch.search(myMethod).toArray(PsiReference.EMPTY_ARRAY);

    List<PsiMethod> result = new ArrayList<>();
    for (PsiReference ref : refs) {
      final PsiElement element = ref.getElement();
      if (!(element instanceof PsiReferenceExpression refExpr) ||
          !(refExpr.getQualifierExpression() instanceof PsiSuperExpression)) {
        final PsiElement enclosingContext = PsiTreeUtil.getParentOfType(element, PsiMethod.class, PsiClass.class);
        if (enclosingContext instanceof PsiMethod enclosingMethod && !result.contains(enclosingContext) &&
            !getMember().equals(enclosingContext) && !myCalled.contains(getMember()) &&  //do not add recursive methods
            noLibraryInheritors(enclosingMethod)) {
          result.add(enclosingMethod);
        }
        else if (element instanceof PsiClass aClass) {
          final PsiMethod method = JavaPsiFacade.getElementFactory(myProject).createMethodFromText(aClass.getName() + "(){}", aClass);
          if (!result.contains(method)) {
            result.add(method);
          }
        }
      }
    }
    return result;
  }
@Override
  protected List<PsiMethod> computeCallers()