Skip to content

Commit ddee69b

Browse files
committed
overflow_checks intrinsic compile time perf trial
1 parent 80e7831 commit ddee69b

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

library/core/src/iter/range.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,6 +1014,11 @@ impl<A: Step> Iterator for ops::RangeFrom<A> {
10141014

10151015
#[inline]
10161016
fn next(&mut self) -> Option<A> {
1017+
// Panic when at max-2, rather than at max-1 as usual
1018+
if crate::intrinsics::overflow_checks() {
1019+
Step::forward(self.start.clone(), 2);
1020+
}
1021+
10171022
let n = Step::forward(self.start.clone(), 1);
10181023
Some(mem::replace(&mut self.start, n))
10191024
}

0 commit comments

Comments
 (0)