]> Repositorios git - scryer-prolog.git/commitdiff
support must_be(var, ...)
authorMarkus Triska <[email protected]>
Wed, 16 Oct 2019 17:13:59 +0000 (19:13 +0200)
committerMarkus Triska <[email protected]>
Wed, 16 Oct 2019 17:18:38 +0000 (19:18 +0200)
src/prolog/lib/error.pl

index e7b7fe66639886168052f4d3509798b6d9eb9bc9..6fb573a4a6a5756ca07e500e2dd9e97ddc5ea0b7 100644 (file)
@@ -33,6 +33,10 @@ must_be(Type, Term) :-
 must_be_(Type, _) :-
         var(Type),
         instantiation_error(Type).
+must_be_(var, Term) :-
+        (   var(Term) -> true
+        ;   throw(error(uninstantiation_error, _))
+        ).
 must_be_(integer, Term) :- check_(integer, integer, Term).
 must_be_(atom, Term)    :- check_(atom, atom, Term).
 must_be_(list, Term)    :- check_(ilist, list, Term).
@@ -52,6 +56,7 @@ type(type).
 type(integer).
 type(atom).
 type(list).
+type(var).
 
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    can_be(Type, Term)