From: Mark Thom Date: Sun, 20 May 2018 18:51:21 +0000 (-0600) Subject: add instantiation error to skip_max_list X-Git-Tag: v0.8.110~460 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=a60af300fd4a08829dee210fe25eb6ad97d9d591;p=scryer-prolog.git add instantiation error to skip_max_list --- 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(())