code: public List<Type> getBounds(TypeVar t) {
          if (t.bound.hasTag(NONE))
              return List.nil();
          else if (t.bound.isErroneous() || !t.bound.isCompound())
              return List.of(t.bound);
          else if ((erasure(t).tsym.flags() & INTERFACE) == 0)
              return interfaces(t).prepend(supertype(t));
          else
              // No superclass was given in bounds.
              // In this case, supertype is Object, erasure is first interface.
              return interfaces(t);
      }
docs: Return list of bounds of the given type variable.