changeset 24069:324408c61b20 v8.2.2576

patch 8.2.2576: Vim9: defining a :func function checks for white space Commit: https://github.com/vim/vim/commit/608d78fb45077fbaf6dc880b754a1d8a54ac9999 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 6 22:33:12 2021 +0100 patch 8.2.2576: Vim9: defining a :func function checks for white space Problem: Vim9: defining a :func function checks for white space after a comma in the arguments. Solution: Only check for white space in a :def function. (closes #7930)
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 Mar 2021 22:45:03 +0100
parents 0ebc4fb72358
children 675369665604
files src/testdir/test_vim9_func.vim src/userfunc.c src/version.c
diffstat 3 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1136,6 +1136,23 @@ def Test_arg_type_wrong()
   CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:')
 enddef
 
+def Test_white_space_after_comma()
+  var lines =<< trim END
+    vim9script
+    def Func(a: number,b: number)
+    enddef
+  END
+  CheckScriptFailure(lines, 'E1069:')
+
+  # OK in legacy function
+  lines =<< trim END
+    vim9script
+    func Func(a,b)
+    endfunc
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 def Test_vim9script_call()
   var lines =<< trim END
     vim9script
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -310,7 +310,8 @@ get_function_args(
 		++p;
 		// Don't give this error when skipping, it makes the "->" not
 		// found in "{k,v -> x}" and give a confusing error.
-		if (!skip && in_vim9script()
+		// Allow missing space after comma in legacy functions.
+		if (!skip && argtypes != NULL
 				      && !IS_WHITE_OR_NUL(*p) && *p != endchar)
 		{
 		    semsg(_(e_white_space_required_after_str_str), ",", p - 1);
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2576,
+/**/
     2575,
 /**/
     2574,