diff --git a/src/libcore/iter/range.rs b/src/libcore/iter/range.rs index 7a38e0cf7cc4..d6c1420a03c2 100644 --- a/src/libcore/iter/range.rs +++ b/src/libcore/iter/range.rs @@ -253,10 +253,8 @@ impl Iterator for ops::Range { } #[inline] - fn max(self) -> Option { - if self.start != self.end { - Some(self.end.sub_one()) - } else { None } + fn max(mut self) -> Option { + self.next_back() } } @@ -376,24 +374,18 @@ impl Iterator for ops::RangeInclusive { } #[inline] - fn last(self) -> Option { - if self.start <= self.end { - Some(self.end) - } else { None } + fn last(mut self) -> Option { + self.next_back() } #[inline] - fn min(self) -> Option { - if self.start <= self.end { - Some(self.start) - } else { None } + fn min(mut self) -> Option { + self.next() } #[inline] - fn max(self) -> Option { - if self.start <= self.end { - Some(self.end) - } else { None } + fn max(mut self) -> Option { + self.next_back() } }