Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/event.rs')
| -rw-r--r-- | crates/parser/src/event.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/parser/src/event.rs b/crates/parser/src/event.rs index 9036688921..41b0328027 100644 --- a/crates/parser/src/event.rs +++ b/crates/parser/src/event.rs @@ -93,8 +93,6 @@ pub(super) fn process(sink: &mut dyn TreeSink, mut events: Vec<Event>) { for i in 0..events.len() { match mem::replace(&mut events[i], Event::tombstone()) { - Event::Start { kind: TOMBSTONE, .. } => (), - Event::Start { kind, forward_parent } => { // For events[A, B, C], B is A's forward_parent, C is B's forward_parent, // in the normal control flow, the parent-child relation: `A -> B -> C`, @@ -109,9 +107,7 @@ pub(super) fn process(sink: &mut dyn TreeSink, mut events: Vec<Event>) { // append `A`'s forward_parent `B` fp = match mem::replace(&mut events[idx], Event::tombstone()) { Event::Start { kind, forward_parent } => { - if kind != TOMBSTONE { - forward_parents.push(kind); - } + forward_parents.push(kind); forward_parent } _ => unreachable!(), @@ -120,7 +116,9 @@ pub(super) fn process(sink: &mut dyn TreeSink, mut events: Vec<Event>) { } for kind in forward_parents.drain(..).rev() { - sink.start_node(kind); + if kind != TOMBSTONE { + sink.start_node(kind); + } } } Event::Finish => sink.finish_node(), |