From 041dc039d4a32e0e7fa6c3154f3458a7bfb8aa8a Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Mon, 18 May 2020 12:27:26 -0600 Subject: [PATCH] add Addr::Lis as case in PartialStringTail (#530) --- src/prolog/iterators.rs | 4 ++++ src/prolog/machine/system_calls.rs | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/prolog/iterators.rs b/src/prolog/iterators.rs index 28da88e4..55087f54 100644 --- a/src/prolog/iterators.rs +++ b/src/prolog/iterators.rs @@ -92,6 +92,10 @@ fn is_partial_string<'a>( Term::Constant(_, Constant::EmptyList) => { return Some((string, None)); } + Term::Constant(_, Constant::String(tail)) => { + string += &tail; + return Some((string, None)); + } _ => { return None; } diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index 9554badb..47b36012 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -1164,6 +1164,9 @@ impl MachineState { return Ok(()); } } + Addr::Lis(h) => { + self.unify(Addr::HeapCell(h + 1), self[temp_v!(2)]); + } Addr::EmptyList => { self.fail = true; return Ok(()); -- 2.54.0