From 50c0abc78696e437f97ec5a80b40a4ebef9c898e Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 10 May 2020 14:00:49 -0600 Subject: [PATCH] correct failed partial string matching (#483) --- src/prolog/machine/machine_state_impl.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 = -- 2.54.0