static void checkTypeParameterOverrideEquivalentMethods(@NotNull PsiClass typeParameter, @NotNull LanguageLevel level,
                                                          @NotNull Consumer<? super HighlightInfo.Builder> errorSink,
                                                          @NotNull Set<? super PsiClass> overrideEquivalentMethodsVisitedClasses,
                                                          @NotNull Map<PsiMember, HighlightInfo.Builder> overrideEquivalentMethodsErrors) {
    if (typeParameter instanceof PsiTypeParameter && level.isAtLeast(LanguageLevel.JDK_1_7)) {
      PsiReferenceList extendsList = typeParameter.getExtendsList();
      if (extendsList.getReferenceElements().length > 1) {
        //todo suppress erased methods which come from the same class
        computeOverrideEquivalentMethodErrors(typeParameter, overrideEquivalentMethodsVisitedClasses, overrideEquivalentMethodsErrors);
        errorSink.accept(overrideEquivalentMethodsErrors.get(typeParameter));
      }
    }
  }
static void checkTypeParameterOverrideEquivalentMethods(@NotNull PsiClass typeParameter, @NotNull LanguageLevel level,
                                                          @NotNull Consumer<? super HighlightInfo.Builder> errorSink,
                                                          @NotNull Set<? super PsiClass> overrideEquivalentMethodsVisitedClasses,
                                                          @NotNull Map<PsiMember, HighlightInfo.Builder> overrideEquivalentMethodsErrors)