diff options
| author | Tim Vermeulen <tvermeulen@me.com> | 2020-02-06 05:58:04 +0100 |
|---|---|---|
| committer | Tim Vermeulen <tvermeulen@me.com> | 2020-03-17 00:03:43 +0100 |
| commit | cff1182bcdf0f35cdb65d4560270b6afed856064 (patch) | |
| tree | 2a3a50c021a27ce4d6adff3db2b41ce78be3019c /src | |
| parent | 16a23e72d05b0e3cb48f0a5442e651725bf27ae8 (diff) | |
Fix FlattenCompat::{next, next_back}
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/iter/adapters/flatten.rs | 10 |
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() { |
