Skip to content

Commit a5adf91

Browse files
committed
fixed bug
1 parent 45ff5d1 commit a5adf91

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

library/core/src/iter/range.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ macro_rules! step_integer_impls {
262262
fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
263263
if *start <= *end {
264264
// This relies on $u_narrower <= usize
265-
let steps = (*end - *start) as usize
265+
let steps = (*end - *start) as usize;
266266
(steps, Some(steps))
267267
} else {
268268
(0, None)
@@ -788,7 +788,7 @@ impl<T: TrustedStep> RangeIteratorImpl for ops::Range<T> {
788788
#[inline]
789789
fn spec_advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>> {
790790
let steps = Step::steps_between(&self.start, &self.end);
791-
let available = steps.1.unwrap_or(step.0);
791+
let available = steps.1.unwrap_or(steps.0);
792792

793793
let taken = available.min(n);
794794

@@ -851,7 +851,11 @@ impl<A: Step> Iterator for ops::Range<A> {
851851

852852
#[inline]
853853
fn size_hint(&self) -> (usize, Option<usize>) {
854-
Step::steps_between(&self.start, &self.end)
854+
if self.start < self.end {
855+
Step::steps_between(&self.start, &self.end)
856+
} else {
857+
(0, Some(0))
858+
}
855859
}
856860

857861
#[inline]

0 commit comments

Comments
 (0)