@Nullable
  private static PsiClass getCircularClassInner(@Nullable PsiElement superType,
                                                @NotNull Collection<? super PsiClass> usedClasses) {
    while (superType instanceof PsiClass) {
      if (!CommonClassNames.JAVA_LANG_OBJECT.equals(((PsiClass)superType).getQualifiedName())) {
        PsiClass circularClass = getCircularClass((PsiClass)superType, usedClasses);
        if (circularClass != null) return circularClass;
      }
      // check class qualifier
      superType = superType.getParent();
    }
    return null;
  }
@Nullable
  private static PsiClass getCircularClassInner(@Nullable PsiElement superType,
                                                @NotNull Collection<? super PsiClass> usedClasses)