about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libcore/iter.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs
index edc67fbf8c9..55bd7c17245 100644
--- a/src/libcore/iter.rs
+++ b/src/libcore/iter.rs
@@ -1130,7 +1130,11 @@ impl<I> RandomAccessIterator for Rev<I> where I: DoubleEndedIterator + RandomAcc
     #[inline]
     fn idx(&mut self, index: usize) -> Option<<I as Iterator>::Item> {
         let amt = self.indexable();
-        self.iter.idx(amt - index - 1)
+        if amt > index {
+            self.iter.idx(amt - index - 1)
+        } else {
+            None
+        }
     }
 }