From 4c0da691b817b8b114c3538c5c1bf2318985bbc8 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 10 May 2020 21:48:38 -0600 Subject: [PATCH] record names of variables at root in write_term_to_heap (#487) --- src/prolog/read.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/prolog/read.rs b/src/prolog/read.rs index 29b37fcb..4751759e 100644 --- a/src/prolog/read.rs +++ b/src/prolog/read.rs @@ -267,11 +267,15 @@ impl<'a> TermWriter<'a> { continue; } } - &TermRef::AnonVar(Level::Root) | &TermRef::Constant(Level::Root, ..) | - &TermRef::Var(Level::Root, ..) => { + &TermRef::AnonVar(Level::Root) | &TermRef::Constant(Level::Root, ..) => { let addr = self.term_as_addr(&term, h); self.machine_st.heap.push(HeapCellValue::Addr(addr)); } + &TermRef::Var(Level::Root, _, ref var) => { + let addr = self.term_as_addr(&term, h); + self.var_dict.insert(var.clone(), Addr::HeapCell(h)); + self.machine_st.heap.push(HeapCellValue::Addr(addr)); + } &TermRef::AnonVar(_) => { if let Some((arity, site_h)) = self.queue.pop_front() { if arity > 1 { -- 2.54.0