use eager_stackful_preorder_iter in variable_set, add term_variables/1 tests

This commit is contained in:
Mark
2023-10-04 15:12:25 -06:00
parent 1bfdea7527
commit 0ad4427f83
5 changed files with 106 additions and 14 deletions

View File

@@ -583,20 +583,11 @@ impl MachineState {
seen_set: &mut IndexSet<HeapCellValue, S>,
value: HeapCellValue,
) {
let mut iter = stackful_preorder_iter::<NonListElider>(&mut self.heap, &mut self.stack, value);
let iter = eager_stackful_preorder_iter(&mut self.heap, value);
while let Some(value) = iter.next() {
let value = unmark_cell_bits!(value);
if value.is_var() {
let value = unmark_cell_bits!(heap_bound_store(
iter.heap,
heap_bound_deref(iter.heap, value)
));
if value.is_var() {
seen_set.insert(value);
}
for term in iter {
if term.is_var() {
seen_set.insert(term);
}
}
}