Skip to content

Commit c25b82f

Browse files
committed
Use Step::forward_unchecked in RangeInclusive::next
1 parent 96f3879 commit c25b82f

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/libcore/iter/range.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,11 @@ impl<A: Step> Iterator for ops::RangeInclusive<A> {
646646
}
647647
let is_iterating = self.start < self.end;
648648
Some(if is_iterating {
649-
let n = Step::forward(self.start.clone(), 1);
649+
// SAFETY: just checked precondition
650+
// We use the unchecked version here, because
651+
// otherwise `for _ in '\0'..=char::MAX`
652+
// does not successfully remove panicking code.
653+
let n = unsafe { Step::forward_unchecked(self.start.clone(), 1) };
650654
mem::replace(&mut self.start, n)
651655
} else {
652656
self.exhausted = true;

0 commit comments

Comments
 (0)