From: Mark Thom Date: Fri, 10 May 2019 02:56:15 +0000 (-0400) Subject: print full list in erroneous variable_names X-Git-Tag: v0.8.110~63 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=f988b674038527333b2b0b0d8ed8c5611afc491b;p=scryer-prolog.git print full list in erroneous variable_names --- diff --git a/Cargo.toml b/Cargo.toml index 87a3cd2f..493c2f02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scryer-prolog" -version = "0.8.80" +version = "0.8.81" authors = ["Mark Thom "] repository = "https://github.com/mthom/scryer-prolog" description = "A modern Prolog implementation written mostly in Rust." diff --git a/src/prolog/lib/builtins.pl b/src/prolog/lib/builtins.pl index 7bff4c1c..32af6703 100644 --- a/src/prolog/lib/builtins.pl +++ b/src/prolog/lib/builtins.pl @@ -240,19 +240,19 @@ inst_member_or([], Y, Y). must_be_var_names_list(VarNames) :- '$skip_max_list'(_, -1, VarNames, Tail), - ( Tail == [] -> must_be_var_names_list_(VarNames) + ( Tail == [] -> must_be_var_names_list_(VarNames, VarNames) ; var(Tail) -> throw(error(instantiation_error, write_term/2)) ; throw(error(domain_error(write_options, variable_names(VarNames)), write_term/2)) ). -must_be_var_names_list_([]). -must_be_var_names_list_([VarName | VarNames]) :- +must_be_var_names_list_([], List). +must_be_var_names_list_([VarName | VarNames], List) :- ( nonvar(VarName), VarName = (Atom = _) -> - ( atom(Atom) -> must_be_var_names_list_(VarNames) + ( atom(Atom) -> must_be_var_names_list_(VarNames, List) ; var(Atom) -> throw(error(instantiation_error, write_term/2)) - ; throw(error(domain_error(write_options, variable_names([VarName | VarNames])), write_term/2)) + ; throw(error(domain_error(write_options, variable_names(List)), write_term/2)) ) - ; throw(error(domain_error(write_options, variable_names([VarName | VarNames])), write_term/2)) + ; throw(error(domain_error(write_options, variable_names(List)), write_term/2)) ). write_term(_, Options) :-