diff options
| -rw-r--r-- | src/libcore/iter.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 518ec05f5b9..edc67fbf8c9 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -728,10 +728,11 @@ pub trait IteratorExt: Iterator + Sized { P: FnMut(Self::Item) -> bool, Self: ExactSizeIterator + DoubleEndedIterator { - let mut i = self.len() - 1; + let mut i = self.len(); + while let Some(v) = self.next_back() { if predicate(v) { - return Some(i); + return Some(i - 1); } i -= 1; } |
