summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-08-23 22:22:45 +0200
committerBram Moolenaar <Bram@vim.org>2021-08-23 22:22:45 +0200
commit60faf8656e1a100778bf7cd4d305380fb852d540 (patch)
tree2f15a1b30b3eabd41bd1c64267f9798e7879801f
parent6b36d2a16d7931bac82ef8b5654c68ac456b24bf (diff)
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)
-rw-r--r--src/eval.c8
-rw-r--r--src/testdir/test_vim9_assign.vim2
-rw-r--r--src/version.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 12931aff51..6b3d78aa6e 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 dffec4f689..6b6311a56a 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 aa5d02a6fa..c5142d277b 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,