patch 8.2.1286: Vim9: No error when using a type to a window variable
Problem: Vim9: No error when using a type to a window variable
Solution: Recognize the syntax and give an error. (closes #6521)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index bd3de8f..85747d5 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3324,6 +3324,14 @@
return eap->cmd;
}
}
+
+ // Recognize using a type for a w:, b:, t: or g: variable:
+ // "w:varname: number = 123".
+ if (eap->cmd[1] == ':' && *p == ':')
+ {
+ eap->cmdidx = CMD_eval;
+ return eap->cmd;
+ }
}
#endif
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index fd572d7..d746485 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -376,6 +376,15 @@
call assert_fails('s/^/\=Mess()/n', 'E794:')
call CheckDefFailure(['let var: dict<number'], 'E1009:')
+
+ call CheckDefFailure(['w:foo: number = 10'],
+ 'E488: Trailing characters: : number = 1')
+ call CheckDefFailure(['t:foo: bool = true'],
+ 'E488: Trailing characters: : bool = true')
+ call CheckDefFailure(['b:foo: string = "x"'],
+ 'E488: Trailing characters: : string = "x"')
+ call CheckDefFailure(['g:foo: number = 123'],
+ 'E488: Trailing characters: : number = 123')
enddef
def Test_unlet()
diff --git a/src/version.c b/src/version.c
index 5563bd1..fc86f15 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1286,
+/**/
1285,
/**/
1284,