From: Mark Thom Date: Mon, 18 May 2020 18:27:26 +0000 (-0600) Subject: add Addr::Lis as case in PartialStringTail (#530) X-Git-Tag: v0.8.123~16 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=041dc039d4a32e0e7fa6c3154f3458a7bfb8aa8a;p=scryer-prolog.git add Addr::Lis as case in PartialStringTail (#530) --- 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(());