changeset 25668:ba4e6e74c89f v8.2.3370

patch 8.2.3370: Vim9: no check for white space before type in declaration Commit: https://github.com/vim/vim/commit/60faf8656e1a100778bf7cd4d305380fb852d540 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 23 22:22:45 2021 +0200 patch 8.2.3370: Vim9: no check for white space before type in declaration 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)
author Bram Moolenaar <Bram@vim.org>
date Mon, 23 Aug 2021 22:30:04 +0200
parents ea4ce099b11d
children 87f9053e504c
files src/eval.c src/testdir/test_vim9_assign.vim src/version.c
diffstat 3 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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
--- 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,