@Override
  public void visitTypeParameterList(@NotNull PsiTypeParameterList list) {
    if (PsiUtil.isLanguageLevel7OrHigher(list)) return;
    PsiTypeParameter[] parameters = list.getTypeParameters();
    for (int i = 0; i < parameters.length; i++) {
      PsiTypeParameter typeParameter = parameters[i];
      for (PsiJavaCodeReferenceElement referenceElement : typeParameter.getExtendsList().getReferenceElements()) {
        PsiElement resolve = referenceElement.resolve();
        if (resolve instanceof PsiTypeParameter && ArrayUtilRt.find(parameters, resolve) > i) {
          myHolder.registerProblem(referenceElement,
                                   JavaAnalysisBundle.message("inspection.compiler.javac.quirks.illegal.forward.reference"));
        }
      }
    }
  }
@Override
  public void visitTypeParameterList(@NotNull PsiTypeParameterList list)