diff --git a/src/tree.rs b/src/tree.rs index de049cc..40632a2 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -209,8 +209,10 @@ impl Builder { pub(super) fn exit(&mut self) { self.depth -= 1; - if self.head.is_some() { - self.head = None; + if let Some(head) = self.head.take() { + if matches!(self.nodes[head.index()].kind, NodeKind::Container(..)) { + self.branch.push(head); + } } else { let last = self.branch.pop(); assert_ne!(last, None);