diff --git a/src/libstd/iterator.rs b/src/libstd/iterator.rs index c2d2e62a3c85..1af49ecd208e 100644 --- a/src/libstd/iterator.rs +++ b/src/libstd/iterator.rs @@ -1592,6 +1592,21 @@ impl + Ord + Clone> Iterator for RangeInclusive { } } } + + #[inline] + fn size_hint(&self) -> (uint, Option) { + let (lo, hi) = self.range.size_hint(); + if self.done { + (lo, hi) + } else { + let lo = lo.saturating_add(1); + let hi = match hi { + Some(x) => x.checked_add(&1), + None => None + }; + (lo, hi) + } + } } impl + Integer + Ord + Clone> DoubleEndedIterator for RangeInclusive {