From: Mark Thom Date: Thu, 25 Nov 2021 06:13:14 +0000 (-0700) Subject: break from loop in get_code upon successful character read X-Git-Tag: v0.9.0^2~118 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=f340f9ac9415154de913cc03f50079a4ac07f013;p=scryer-prolog.git break from loop in get_code upon successful character read --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 41215a80..86d5841f 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -988,8 +988,10 @@ module_abolish(Pred, Module) :- ; Pred = Name/Arity -> ( var(Name) -> throw(error(instantiation_error, abolish/1)) + ; var(Arity) -> + throw(error(instantiation_error, abolish/1)) ; integer(Arity) -> - ( \+ atom(Name) -> + (\+ atom(Name) -> throw(error(type_error(atom, Name), abolish/1)) ; Arity < 0 -> throw(error(domain_error(not_less_than_zero, Arity), abolish/1)) @@ -1003,7 +1005,6 @@ module_abolish(Pred, Module) :- ; throw(error(permission_error(modify, static_procedure, Pred), abolish/1)) ) ) - ; var(Arity) -> throw(error(instantiation_error, abolish/1)) ; throw(error(type_error(integer, Arity), abolish/1)) ) ; throw(error(type_error(predicate_indicator, Module:Pred), abolish/1)) diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index eedb127b..a35a65e8 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -2369,6 +2369,8 @@ impl MachineState { if self.fail { return Ok(()); } + + break; } _ => { self.eof_action(