code: public static Number leftShift(Number left, Number right) {
          if (isFloatingPoint(right) || isBigDecimal(right)) {
              throw new UnsupportedOperationException("Shift distance must be an integral type, but " + right + " (" + right.getClass().getName() + ") was supplied");
          }
          return getMath(left).leftShiftImpl(left, right);
      }
docs: For this operation, consider the operands independently.  Throw an exception if the right operand
  (shift distance) is not an integral type.  For the left operand (shift value) also require an integral
  type, but do NOT promote from Integer to Long.  This is consistent with Java, and makes sense for the
  shift operators.