diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-03-10 20:01:50 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-03-10 20:01:50 +0000 |
commit | 1b1df95f1a84cbc362e32f676f1e135aa2e7fc3c (patch) | |
tree | b22a46b8f7b9e2668aadb1ba035a7fffa82091de | |
parent | 53ba6ca5b27248680e368340707ad4b32a82591f (diff) | |
download | vim-git-1b1df95f1a84cbc362e32f676f1e135aa2e7fc3c.tar.gz |
patch 8.2.4540: line number for error is off by onev8.2.4540
Problem: Line number for error is off by one.
Solution: Remember the line number of the comparison. (closes #9923)
-rw-r--r-- | src/eval.c | 3 | ||||
-rw-r--r-- | src/testdir/test_vim9_expr.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index a48b8f8ab..1d57c38aa 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2849,6 +2849,7 @@ eval4(char_u **arg, typval_T *rettv, evalarg_T *evalarg) int vim9script = in_vim9script(); int evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE); + long comp_lnum = SOURCING_LNUM; if (getnext) { @@ -2904,6 +2905,8 @@ eval4(char_u **arg, typval_T *rettv, evalarg_T *evalarg) { int ret; + // use the line of the comparison for messages + SOURCING_LNUM = comp_lnum; if (vim9script && check_compare_types(type, rettv, &var2) == FAIL) { ret = FAIL; diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 1d15ba462..0d1cbe05f 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -844,6 +844,13 @@ def Test_expr4_compare_none() v9.CheckDefAndScriptFailure(['echo [] == v:none'], 'E1072: Cannot compare list with special') v9.CheckDefAndScriptFailure(['echo 123 == v:none'], 'E1072: Cannot compare number with special') v9.CheckDefAndScriptFailure(['echo 0z00 == v:none'], 'E1072: Cannot compare blob with special') + + lines =<< trim END + echo [] == v:none + + eval 0 + 0 + END + v9.CheckDefAndScriptFailure(lines, 'E1072:', 1) enddef def Test_expr4_wrong_type() diff --git a/src/version.c b/src/version.c index b7449325c..294779060 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4540, +/**/ 4539, /**/ 4538, |