}
}
-#[unstable = "API still in development"]
-impl fmt::String for FullRange {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- fmt::String::fmt("..", fmt)
- }
-}
-
/// A (half-open) range which is bounded at both ends.
#[derive(Copy, PartialEq, Eq)]
#[lang="range"]
write!(fmt, "{:?}..{:?}", self.start, self.end)
}
}
-#[cfg(stage0)]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String + fmt::Show> fmt::String for Range<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "{}..{}", self.start, self.end)
- }
-}
-#[cfg(not(stage0))]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String> fmt::String for Range<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "{}..{}", self.start, self.end)
- }
-}
/// A range which is only bounded below.
#[derive(Copy, PartialEq, Eq)]
}
}
-#[cfg(stage0)]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String + fmt::Show> fmt::String for RangeFrom<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "{}..", self.start)
- }
-}
-#[cfg(not(stage0))]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String> fmt::String for RangeFrom<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "{}..", self.start)
- }
-}
-
/// A range which is only bounded above.
#[derive(Copy, PartialEq, Eq)]
#[lang="range_to"]
}
}
-#[cfg(stage0)]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String + fmt::Show> fmt::String for RangeTo<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "..{}", self.end)
- }
-}
-#[cfg(not(stage0))]
-#[unstable = "API still in development"]
-impl<Idx: fmt::String> fmt::String for RangeTo<Idx> {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- write!(fmt, "..{}", self.end)
- }
-}
-
/// The `Deref` trait is used to specify the functionality of dereferencing
/// operations like `*v`.
let cur_prec = operator_prec(cur_op);
if cur_prec > min_prec {
self.bump();
- // TODO
let expr = self.parse_prefix_expr();
let rhs = self.parse_more_binops(expr, cur_prec);
let lhs_span = lhs.span;
let assign_op = self.mk_assign_op(aop, lhs, rhs);
self.mk_expr(span.lo, rhs_span.hi, assign_op)
}
- // TODO
// A range expression, either `expr..expr` or `expr..`.
token::DotDot if !self.restrictions.contains(RESTRICTION_NO_DOTS) => {
self.bump();
let opt_end = if self.token.can_begin_expr() {
- // TODO only use of RES...DOT
let end = self.parse_expr_res(RESTRICTION_NO_DOTS);
Some(end)
} else {