about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorTim Vermeulen <tvermeulen@me.com>2020-02-06 05:58:04 +0100
committerTim Vermeulen <tvermeulen@me.com>2020-03-17 00:03:43 +0100
commitcff1182bcdf0f35cdb65d4560270b6afed856064 (patch)
tree2a3a50c021a27ce4d6adff3db2b41ce78be3019c /src
parent16a23e72d05b0e3cb48f0a5442e651725bf27ae8 (diff)
Fix FlattenCompat::{next, next_back}
Diffstat (limited to 'src')
-rw-r--r--src/libcore/iter/adapters/flatten.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libcore/iter/adapters/flatten.rs b/src/libcore/iter/adapters/flatten.rs
index 6000214af43..4202e52448d 100644
--- a/src/libcore/iter/adapters/flatten.rs
+++ b/src/libcore/iter/adapters/flatten.rs
@@ -264,8 +264,9 @@ where
     fn next(&mut self) -> Option<U::Item> {
         loop {
             if let Some(ref mut inner) = self.frontiter {
-                if let elt @ Some(_) = inner.next() {
-                    return elt;
+                match inner.next() {
+                    None => self.frontiter = None,
+                    elt @ Some(_) => return elt,
                 }
             }
             match self.iter.next() {
@@ -351,8 +352,9 @@ where
     fn next_back(&mut self) -> Option<U::Item> {
         loop {
             if let Some(ref mut inner) = self.backiter {
-                if let elt @ Some(_) = inner.next_back() {
-                    return elt;
+                match inner.next_back() {
+                    None => self.backiter = None,
+                    elt @ Some(_) => return elt,
                 }
             }
             match self.iter.next_back() {