From: Mark Thom Date: Fri, 15 Aug 2025 04:21:32 +0000 (-0700) Subject: check for stack variables in ground_test before iterating (#3048) X-Git-Tag: v0.10.0~25 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=87f5295bd01e59c0387083b2de2b38e48ad1e310;p=scryer-prolog.git check for stack variables in ground_test before iterating (#3048) --- diff --git a/src/machine/machine_state_impl.rs b/src/machine/machine_state_impl.rs index 3f14253d..3de055e5 100644 --- a/src/machine/machine_state_impl.rs +++ b/src/machine/machine_state_impl.rs @@ -1193,9 +1193,13 @@ impl MachineState { // returns true on failure. pub fn ground_test(&mut self) -> bool { - let iter = eager_stackful_preorder_iter(&mut self.heap, self.registers[1]); + let term = self.store(self.deref(self.registers[1])); - for term in iter { + if term.is_stack_var() { + return true; + } + + for term in eager_stackful_preorder_iter(&mut self.heap, term) { if term.is_var() { return true; }