diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-08-23 22:22:45 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-08-23 22:22:45 +0200 |
commit | 60faf8656e1a100778bf7cd4d305380fb852d540 (patch) | |
tree | 2f15a1b30b3eabd41bd1c64267f9798e7879801f /src | |
parent | 6b36d2a16d7931bac82ef8b5654c68ac456b24bf (diff) | |
download | vim-git-60faf8656e1a100778bf7cd4d305380fb852d540.tar.gz |
patch 8.2.3370: Vim9: no check for white space before type in declarationv8.2.3370
Problem: Vim9: no check for white space before type in declaration.
(Naohiro Ono)
Solution: Check for white space like in a compiled function. (closes #8785)
Diffstat (limited to 'src')
-rw-r--r-- | src/eval.c | 8 | ||||
-rw-r--r-- | src/testdir/test_vim9_assign.vim | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c index 12931aff5..6b3d78aa6 100644 --- a/src/eval.c +++ b/src/eval.c @@ -887,7 +887,13 @@ get_lval( if (*p == ':') { scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid); - char_u *tp = skipwhite(p + 1); + char_u *tp = skipwhite(p + 1); + + if (tp == p + 1 && !quiet) + { + semsg(_(e_white_space_required_after_str_str), ":", p); + return NULL; + } // parse the type after the name lp->ll_type = parse_type(&tp, &si->sn_type_list, !quiet); diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index dffec4f68..6b6311a56 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -1722,6 +1722,8 @@ def Test_var_type_check() END CheckScriptFailure(lines, 'E1069:') + CheckDefAndScriptFailure(['var n:number = 42'], 'E1069:') + lines =<< trim END vim9script var name: asdf diff --git a/src/version.c b/src/version.c index aa5d02a6f..c5142d277 100644 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3370, +/**/ 3369, /**/ 3368, |