about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorTim Vermeulen <tvermeulen@me.com>2020-02-05 00:08:22 +0100
committerTim Vermeulen <tvermeulen@me.com>2020-02-10 13:32:21 +0100
commit14bcf0aaa51138afdd95190d814f4b46013f990e (patch)
tree2b1b794cf03cd406f283e7f321fd317fcb30b18d /src
parenta19edd6b161521a4f66716b3b45b8cf4d3f03f3a (diff)
downloadrust-14bcf0aaa51138afdd95190d814f4b46013f990e.tar.gz
rust-14bcf0aaa51138afdd95190d814f4b46013f990e.zip
Fix Peekable::next_back
Diffstat (limited to 'src')
-rw-r--r--src/libcore/iter/adapters/mod.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libcore/iter/adapters/mod.rs b/src/libcore/iter/adapters/mod.rs
index 7d10ef3d282..67a68cfea08 100644
--- a/src/libcore/iter/adapters/mod.rs
+++ b/src/libcore/iter/adapters/mod.rs
@@ -1468,7 +1468,11 @@ where
 {
     #[inline]
     fn next_back(&mut self) -> Option<Self::Item> {
-        self.iter.next_back().or_else(|| self.peeked.take().and_then(|x| x))
+        match self.peeked.as_mut() {
+            Some(v @ Some(_)) => self.iter.next_back().or_else(|| v.take()),
+            Some(None) => None,
+            None => self.iter.next_back(),
+        }
     }
 
     #[inline]