diff --git a/src/prolog/machine/machine_state_impl.rs b/src/prolog/machine/machine_state_impl.rs index aa7cb911..a64685c5 100644 --- a/src/prolog/machine/machine_state_impl.rs +++ b/src/prolog/machine/machine_state_impl.rs @@ -796,7 +796,7 @@ impl MachineState { if let Some(var) = addr.as_var() { self.bind(var, Addr::EmptyList); } else { - self.fail = true; + self.fail = addr != Addr::EmptyList; } } } @@ -804,9 +804,7 @@ impl MachineState { } Some(prefix_len) => { match heap_pstr_iter.focus() { - addr @ Addr::AttrVar(_) | - addr @ Addr::StackCell(..) | - addr @ Addr::HeapCell(_) => { + addr if addr.is_ref() => { let h = self.heap.h(); let pstr_addr =