From f509d3d66f7522cf57f06ff67024663d8d37d54c Mon Sep 17 00:00:00 2001 From: David Farrell <1469333+dnmfarrell@users.noreply.github.com> Date: Sat, 1 Feb 2025 14:02:34 -0500 Subject: [PATCH] Line numbers start at 1 Bumps the line number for the singleton warning. When the singleton occurs on the same line at the term starts, the line number is correct: foo(X). However it stills mis-reports this line number as 1 instead of 5: foo(1) :- true, true, true, Y. See issue #1356. --- src/loader.pl | 3 ++- tests/scryer/cli/src_tests/directive_errors.md | 8 ++++---- tests/scryer/main.rs | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/loader.pl b/src/loader.pl index cf3c1448..12341b42 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -210,7 +210,8 @@ load_loop(Stream, Evacuable) :- '$conclude_load'(Evacuable) ; var(Term) -> instantiation_error(load/1) - ; warn_about_singletons(Singletons, LinesRead), + ; LineNum is LinesRead + 1, + warn_about_singletons(Singletons, LineNum), compile_term(Term, Evacuable), load_loop(Stream, Evacuable) ). diff --git a/tests/scryer/cli/src_tests/directive_errors.md b/tests/scryer/cli/src_tests/directive_errors.md index 2beb7c73..4b6c8b43 100644 --- a/tests/scryer/cli/src_tests/directive_errors.md +++ b/tests/scryer/cli/src_tests/directive_errors.md @@ -42,14 +42,14 @@ $ scryer-prolog -f --no-add-history tests-pl/invalid_decl7.pl -g halt ```trycmd $ scryer-prolog -f --no-add-history tests-pl/invalid_decl8.pl -g halt -% Warning: singleton variables Var at line 0 of invalid_decl8.pl +% Warning: singleton variables Var at line 1 of invalid_decl8.pl error(domain_error(operator_specifier,todo_insert_invalid_term_here),load/1). ``` ```trycmd $ scryer-prolog -f --no-add-history tests-pl/invalid_decl9.pl -g halt -% Warning: singleton variables Var at line 0 of invalid_decl9.pl +% Warning: singleton variables Var at line 1 of invalid_decl9.pl error(type_error(integer,todo_insert_invalid_term_here),load/1). ``` @@ -63,7 +63,7 @@ FIXME I belive the following test should result in a `error(instantiation_error, ```trycmd $ scryer-prolog -f --no-add-history tests-pl/invalid_decl11.pl -g halt -% Warning: singleton variables Var at line 0 of invalid_decl11.pl +% Warning: singleton variables Var at line 1 of invalid_decl11.pl error(type_error(list,todo_insert_invalid_term_here),load/1). ``` @@ -101,7 +101,7 @@ $ scryer-prolog -f --no-add-history tests-pl/invalid_decl16.pl -g halt ```trycmd $ scryer-prolog -f --no-add-history tests-pl/invalid_decl_issue2467.pl -g halt -% Warning: singleton variables D at line 0 of invalid_decl_issue2467.pl +% Warning: singleton variables D at line 1 of invalid_decl_issue2467.pl error(instantiation_error,load/1). ``` diff --git a/tests/scryer/main.rs b/tests/scryer/main.rs index bb77f334..a501bd42 100644 --- a/tests/scryer/main.rs +++ b/tests/scryer/main.rs @@ -22,7 +22,6 @@ fn cli_tests() { trycmd::TestCases::new() .default_bin_name("scryer-prolog") .case("tests/scryer/cli/issues/*.toml") - .skip("tests/scryer/cli/issues/singleton_warning.toml") // wrong line number .case("tests/scryer/cli/src_tests/*.toml") .case("tests/scryer/cli/src_tests/*.md"); } -- 2.54.0