diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-05 16:08:55 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-05 16:08:55 +0100 |
commit | ea72038d60401d351faaf1b4a52f4537e719df6f (patch) | |
tree | 3bd55a588657cec8c8efcf26cb1eaa0f69ec784e | |
parent | 09d9421b673366e5f6e56fbf74204a1c316fdea2 (diff) | |
download | vim-git-ea72038d60401d351faaf1b4a52f4537e719df6f.tar.gz |
patch 8.2.4872: Vim9: no error for using an expression onlyv8.2.4872
Problem: Vim9: no error for using an expression only at the script level
when followed by an empty line.
Solution: Do not check the line number but whether something follows.
(closes #10357)
-rw-r--r-- | src/ex_eval.c | 8 | ||||
-rw-r--r-- | src/testdir/test_vim9_cmd.vim | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 23 insertions, 1 deletions
diff --git a/src/ex_eval.c b/src/ex_eval.c index 9a2792a2a..e9dbd107c 100644 --- a/src/ex_eval.c +++ b/src/ex_eval.c @@ -940,8 +940,14 @@ ex_eval(exarg_T *eap) if (eval0(eap->arg, &tv, eap, &evalarg) == OK) { clear_tv(&tv); - if (in_vim9script() && name_only && lnum == SOURCING_LNUM) + if (in_vim9script() && name_only + && (evalarg.eval_tofree == NULL + || ends_excmd2(evalarg.eval_tofree, + skipwhite(evalarg.eval_tofree)))) + { + SOURCING_LNUM = lnum; semsg(_(e_expression_without_effect_str), eap->arg); + } } clear_evalarg(&evalarg, eap); diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim index 4cd78f6d1..50719e1b5 100644 --- a/src/testdir/test_vim9_cmd.vim +++ b/src/testdir/test_vim9_cmd.vim @@ -651,6 +651,20 @@ def Test_use_register() v9.CheckDefAndScriptFailure(lines, 'E1207:', 2) lines =<< trim END + @a = 'echo "text"' + @a + + END + v9.CheckDefAndScriptFailure(lines, 'E1207:', 2) + + lines =<< trim END + @a = 'echo "text"' + @a + # comment + END + v9.CheckDefAndScriptFailure(lines, 'E1207:', 2) + + lines =<< trim END @/ = 'pattern' @/ END diff --git a/src/version.c b/src/version.c index f0269e44d..5ad75510f 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4872, +/**/ 4871, /**/ 4870, |