Skip to content

Commit 608d78f

Browse files
committed
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)
1 parent 6914e87 commit 608d78f

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/testdir/test_vim9_func.vim

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,6 +1136,23 @@ def Test_arg_type_wrong()
11361136
CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:')
11371137
enddef
11381138

1139+
def Test_white_space_after_comma()
1140+
var lines =<< trim END
1141+
vim9script
1142+
def Func(a: number,b: number)
1143+
enddef
1144+
END
1145+
CheckScriptFailure(lines, 'E1069:')
1146+
1147+
# OK in legacy function
1148+
lines =<< trim END
1149+
vim9script
1150+
func Func(a,b)
1151+
endfunc
1152+
END
1153+
CheckScriptSuccess(lines)
1154+
enddef
1155+
11391156
def Test_vim9script_call()
11401157
var lines =<< trim END
11411158
vim9script

src/userfunc.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,8 @@ get_function_args(
310310
++p;
311311
// Don't give this error when skipping, it makes the "->" not
312312
// found in "{k,v -> x}" and give a confusing error.
313-
if (!skip && in_vim9script()
313+
// Allow missing space after comma in legacy functions.
314+
if (!skip && argtypes != NULL
314315
&& !IS_WHITE_OR_NUL(*p) && *p != endchar)
315316
{
316317
semsg(_(e_white_space_required_after_str_str), ",", p - 1);

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,8 @@ static char *(features[]) =
750750

751751
static int included_patches[] =
752752
{ /* Add new patch number below this line */
753+
/**/
754+
2576,
753755
/**/
754756
2575,
755757
/**/

0 commit comments

Comments
 (0)