summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-04-06 19:01:03 +0200
committerBram Moolenaar <Bram@vim.org>2021-04-06 19:01:03 +0200
commit86cdb8a4bd1abff40b5f80c3c4149b33cbaab990 (patch)
treea4043b082ff789af6fa8b79c5be70aca287a89f7
parente8c4660a55364a5d3e395652d1202b8702666823 (diff)
downloadvim-git-86cdb8a4bd1abff40b5f80c3c4149b33cbaab990.tar.gz
patch 8.2.2726: confusing error message with white space before commav8.2.2726
Problem: Confusing error message with white space before comma in the arguments of a function declaration. Solution: Give a specific error message. (closes #2235)
-rw-r--r--src/testdir/test_vim9_func.vim9
-rw-r--r--src/userfunc.c11
-rw-r--r--src/version.c2
3 files changed, 22 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 8085e5cf2..730cf40aa 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1263,6 +1263,15 @@ def Test_arg_type_wrong()
CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:')
enddef
+def Test_white_space_before_comma()
+ var lines =<< trim END
+ vim9script
+ def Func(a: number , b: number)
+ enddef
+ END
+ CheckScriptFailure(lines, 'E1068:')
+enddef
+
def Test_white_space_after_comma()
var lines =<< trim END
vim9script
diff --git a/src/userfunc.c b/src/userfunc.c
index 1139573c6..af107b0db 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -307,6 +307,17 @@ get_function_args(
emsg(_("E989: Non-default argument follows default argument"));
goto err_ret;
}
+
+ if (VIM_ISWHITE(*p) && *skipwhite(p) == ',')
+ {
+ // Be tolerant when skipping
+ if (!skip)
+ {
+ semsg(_(e_no_white_space_allowed_before_str_str), ",", p);
+ goto err_ret;
+ }
+ p = skipwhite(p);
+ }
if (*p == ',')
{
++p;
diff --git a/src/version.c b/src/version.c
index 4318b71eb..9b356bd26 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 */
/**/
+ 2726,
+/**/
2725,
/**/
2724,