]> Repositorios git - scryer-prolog.git/commitdiff
use must_be(list, ...) earlier, since it is now faster
authorMarkus Triska <[email protected]>
Fri, 26 Nov 2021 16:11:51 +0000 (17:11 +0100)
committerMarkus Triska <[email protected]>
Fri, 26 Nov 2021 16:11:51 +0000 (17:11 +0100)
src/lib/error.pl

index 749ad04ee989dd19f6976b77a7a7e1957070f035..d582749597b8d893139a1b2e03cd5689334131e4 100644 (file)
@@ -47,13 +47,13 @@ must_be_(integer, Term) :- check_(integer, integer, Term).
 must_be_(atom, Term)    :- check_(atom, atom, Term).
 must_be_(character, T)  :- check_(error:character, character, T).
 must_be_(chars, Ls) :-
-        (   ground(Ls), '$is_partial_string'(Ls) ->
+        must_be(list, Ls),
+        (   '$is_partial_string'(Ls) ->
             % The expected case (success) uses a very fast test.
             % We cannot use partial_string/1 from library(iso_ext),
             % because that library itself imports library(error).
             true
-        ;   must_be(list, Ls),
-            all_characters(Ls)
+        ;   all_characters(Ls)
         ).
 must_be_(list, Term)    :- check_(error:ilist, list, Term).
 must_be_(type, Term)    :- check_(error:type, type, Term).