diff --git a/crates/oxc_ast/src/serialize.rs b/crates/oxc_ast/src/serialize.rs index 3c5dfd672..e74d89ac6 100644 --- a/crates/oxc_ast/src/serialize.rs +++ b/crates/oxc_ast/src/serialize.rs @@ -227,13 +227,15 @@ impl<'a, 'b, E, R> ElementsAndRest<'a, 'b, E, R> { impl<'a, 'b, E: Serialize, R: Serialize> Serialize for ElementsAndRest<'a, 'b, E, R> { fn serialize(&self, serializer: S) -> Result { - let mut seq = serializer.serialize_seq(Some(self.elements.len() + 1))?; - for element in self.elements { - seq.serialize_element(element)?; - } if let Some(rest) = self.rest { + let mut seq = serializer.serialize_seq(Some(self.elements.len() + 1))?; + for element in self.elements { + seq.serialize_element(element)?; + } seq.serialize_element(rest)?; + seq.end() + } else { + self.elements.serialize(serializer) } - seq.end() } }