Skip to content

Commit 37fbf68

Browse files
committed
Upgrade implementation of StepBy<RangeInclusive<_>>.
1 parent 0fa94e7 commit 37fbf68

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/libcore/iter/mod.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -787,17 +787,19 @@ where
787787
#[inline]
788788
fn spec_next(&mut self) -> Option<Self::Item> {
789789
self.first_take = false;
790-
if !(self.iter.start <= self.iter.end) {
790+
if self.iter.is_empty() {
791+
self.iter.is_iterating = Some(false);
791792
return None;
792793
}
793794
// add 1 to self.step to get original step size back
794795
// it was decremented for the general case on construction
795796
if let Some(n) = self.iter.start.add_usize(self.step+1) {
797+
self.iter.is_iterating = Some(n <= self.iter.end);
796798
let next = mem::replace(&mut self.iter.start, n);
797799
Some(next)
798800
} else {
799-
let last = self.iter.start.replace_one();
800-
self.iter.end.replace_zero();
801+
let last = self.iter.start.clone();
802+
self.iter.is_iterating = Some(false);
801803
Some(last)
802804
}
803805
}

0 commit comments

Comments
 (0)