diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index 91998163..a387d404 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -2832,7 +2832,7 @@ where where T: DeserializeSeed<'de>, { - while let Some(item) = self.iter.next() { + for item in &mut self.iter { // Items in the vector are nulled out when used by a struct. if let Some((ref key, ref content)) = *item { self.pending_content = Some(content); @@ -2934,7 +2934,7 @@ where where T: DeserializeSeed<'de>, { - while let Some(item) = self.iter.next() { + for item in &mut self.iter { if let Some((ref key, ref content)) = *item { // Do not take(), instead borrow this entry. The internally tagged // enum does its own buffering so we can't tell whether this entry