From a60af300fd4a08829dee210fe25eb6ad97d9d591 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 20 May 2018 12:51:21 -0600 Subject: [PATCH] add instantiation error to skip_max_list --- src/prolog/machine/system_calls.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index bbf4d237..2a18ce83 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -106,8 +106,8 @@ impl MachineState { let max_steps = self.store(self.deref(self[temp_v!(2)].clone())); match max_steps { - Addr::Con(Constant::Number(Number::Integer(ref max_steps))) - if max_steps.to_isize().map(|i| i >= -1).unwrap_or(false) => { + Addr::Con(Constant::Number(Number::Integer(ref max_steps))) => + if max_steps.to_isize().map(|i| i >= -1).unwrap_or(false) { let n = self.store(self.deref(self[temp_v!(1)].clone())); match n { @@ -145,8 +145,13 @@ impl MachineState { } } } + } else { + self.fail = true; }, - _ => self.fail = true + _ => { + let stub = self.functor_stub(clause_name!("$skip_max_list"), 4); + return Err(self.error_form(self.instantiation_error(), stub)); + } }; Ok(()) -- 2.54.0