private PsiType[] getTypeRange(final PsiType lowerBound, final PsiType upperBound) {
    Set<PsiType> range = new HashSet<>();

    range.add(lowerBound);
    range.add(upperBound);

    fillTypeRange(lowerBound, upperBound, range);

    return range.toArray(PsiType.createArray(range.size()));
  }
private PsiType[] getTypeRange(final PsiType lowerBound, final PsiType upperBound)