diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-03-06 22:33:12 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-03-06 22:33:12 +0100 |
commit | 608d78fb45077fbaf6dc880b754a1d8a54ac9999 (patch) | |
tree | 4aa344c12ee7a15f2bbeab980e34adea80018783 | |
parent | 6914e87d3c0387fdcbb117a39e1f6d1fac0ee2e3 (diff) | |
download | vim-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.vim | 17 | ||||
-rw-r--r-- | src/userfunc.c | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |