diff --git a/src/protocol/parser.rs b/src/protocol/parser.rs index 2c97a2a535221cf518513b99c5a093007f325879..c1fc2d7946e1821a4871a8094483d2f01fd11c40 100644 --- a/src/protocol/parser.rs +++ b/src/protocol/parser.rs @@ -1081,6 +1081,13 @@ impl LinkStatements { } impl Visitor for LinkStatements { + fn visit_symbol_definition(&mut self, h: &mut Heap, def: DefinitionId) -> VisitorResult { + assert!(self.prev.is_none()); + recursive_symbol_definition(self, h, def)?; + // Clear out last statement + self.prev = None; + Ok(()) + } fn visit_statement(&mut self, h: &mut Heap, stmt: StatementId) -> VisitorResult { if let Some(UniqueStatementId(prev)) = self.prev.take() { h[prev].link_next(stmt);