static void computeOverrideEquivalentMethodErrors(@NotNull PsiClass aClass,
                                                    @NotNull Set<? super PsiClass> overrideEquivalentMethodsVisitedClasses,
                                                    @NotNull Map<PsiMember, HighlightInfo.Builder> overrideEquivalentMethodsErrors) {
    if (overrideEquivalentMethodsVisitedClasses.add(aClass)) {
      Collection<HierarchicalMethodSignature> signaturesWithSupers = aClass.getVisibleSignatures();
      PsiManager manager = aClass.getManager();
      Map<MethodSignature, MethodSignatureBackedByPsiMethod> sameErasureMethods =
        MethodSignatureUtil.createErasedMethodSignatureMap();

      Set<MethodSignature> foundProblems = MethodSignatureUtil.createErasedMethodSignatureSet();
      for (HierarchicalMethodSignature signature : signaturesWithSupers) {
        Pair<PsiMember, HighlightInfo.Builder> pair = checkSameErasureNotSubSignatureInner(signature, manager, aClass, sameErasureMethods);
        if (pair != null && foundProblems.add(signature)) {
          overrideEquivalentMethodsErrors.put(pair.getFirst(), pair.getSecond());
        }
        if (aClass instanceof PsiTypeParameter) {
          HighlightInfo.Builder info =
            HighlightMethodUtil.checkMethodIncompatibleReturnType(signature, signature.getSuperSignatures(), true,
                                                                  HighlightNamesUtil.getClassDeclarationTextRange(aClass),
                                                                  null);
          if (info != null) {
            overrideEquivalentMethodsErrors.put(aClass, info);
          }
        }
      }
    }
  }
static void computeOverrideEquivalentMethodErrors(@NotNull PsiClass aClass,
                                                    @NotNull Set<? super PsiClass> overrideEquivalentMethodsVisitedClasses,
                                                    @NotNull Map<PsiMember, HighlightInfo.Builder> overrideEquivalentMethodsErrors)