summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-03-06 22:33:12 +0100
committerBram Moolenaar <Bram@vim.org>2021-03-06 22:33:12 +0100
commit608d78fb45077fbaf6dc880b754a1d8a54ac9999 (patch)
tree4aa344c12ee7a15f2bbeab980e34adea80018783
parent6914e87d3c0387fdcbb117a39e1f6d1fac0ee2e3 (diff)
downloadvim-git-608d78fb45077fbaf6dc880b754a1d8a54ac9999.tar.gz
patch 8.2.2576: Vim9: defining a :func function checks for white spacev8.2.2576
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)
-rw-r--r--src/testdir/test_vim9_func.vim17
-rw-r--r--src/userfunc.c3
-rw-r--r--src/version.c2
3 files changed, 21 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 2ac860987..810b3a3cf 100644
--- 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
diff --git a/src/userfunc.c b/src/userfunc.c
index 04c264120..e89b8858d 100644
--- 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);
diff --git a/src/version.c b/src/version.c
index 48f3faae1..5cbf28770 100644
--- 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,