diff options
| author | Tim Vermeulen <tvermeulen@me.com> | 2020-02-05 00:08:22 +0100 |
|---|---|---|
| committer | Tim Vermeulen <tvermeulen@me.com> | 2020-02-10 13:32:21 +0100 |
| commit | 14bcf0aaa51138afdd95190d814f4b46013f990e (patch) | |
| tree | 2b1b794cf03cd406f283e7f321fd317fcb30b18d /src | |
| parent | a19edd6b161521a4f66716b3b45b8cf4d3f03f3a (diff) | |
| download | rust-14bcf0aaa51138afdd95190d814f4b46013f990e.tar.gz rust-14bcf0aaa51138afdd95190d814f4b46013f990e.zip | |
Fix Peekable::next_back
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/iter/adapters/mod.rs | 6 |
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] |
