patch 8.2.1159: Vim9: no error for missing space after a comma
Problem: Vim9: no error for missing space after a comma.
Solution: Check for white space.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index dd2a8ad..b4e0604 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1014,6 +1014,7 @@
call CheckDefExecFailure(["let x = g:anint[3]"], 'E714:')
call CheckDefFailure(["let x = g:list_mixed[xxx]"], 'E1001:')
+ call CheckDefFailure(["let x = [1,2,3]"], 'E1069:')
call CheckDefExecFailure(["let x = g:list_mixed['xx']"], 'E39:')
call CheckDefFailure(["let x = g:list_mixed[0"], 'E111:')
call CheckDefExecFailure(["let x = g:list_empty[3]"], 'E684:')
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index a95761f..f923e14 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -571,7 +571,7 @@
def Test_try_catch_fails()
call CheckDefFailure(['catch'], 'E603:')
- call CheckDefFailure(['try', 'echo 0', 'catch','catch'], 'E1033:')
+ call CheckDefFailure(['try', 'echo 0', 'catch', 'catch'], 'E1033:')
call CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:')
call CheckDefFailure(['finally'], 'E606:')
call CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:')
diff --git a/src/version.c b/src/version.c
index 587f299..1af0262 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1159,
+/**/
1158,
/**/
1157,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 07aacb3..0aae8f2 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3060,7 +3060,14 @@
break;
++count;
if (*p == ',')
+ {
++p;
+ if (*p != ']' && !IS_WHITE_OR_NUL(*p))
+ {
+ semsg(_(e_white_after), ",");
+ return FAIL;
+ }
+ }
whitep = p;
p = skipwhite(p);
}