summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-01-24 21:14:20 +0100
committerBram Moolenaar <Bram@vim.org>2021-01-24 21:14:20 +0100
commit4efd9948291801bffebf36b4a9910d08ff981987 (patch)
treeadd86f65dc8d8d601dc48b4ce9b833db363561c5
parent107e9cecf72928b4aaaf08b73bf2d191924ab695 (diff)
patch 8.2.2405: Vim9: no need to allow white space before "(" for :defv8.2.2405
Problem: Vim9: no need to allow white space before "(" for :def. Solution: Give an error for stray white space. (issue #7734)
-rw-r--r--src/testdir/test_vim9_func.vim32
-rw-r--r--src/userfunc.c6
-rw-r--r--src/version.c2
3 files changed, 40 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index fc1ed2120a..a5855adcbc 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -116,6 +116,38 @@ def Test_missing_endfunc_enddef()
CheckScriptFailure(lines, 'E126:', 2)
enddef
+def Test_white_space_before_paren()
+ var lines =<< trim END
+ vim9script
+ def Test ()
+ echo 'test'
+ enddef
+ END
+ CheckScriptFailure(lines, 'E1068:', 2)
+
+ lines =<< trim END
+ vim9script
+ func Test ()
+ echo 'test'
+ endfunc
+ END
+ CheckScriptFailure(lines, 'E1068:', 2)
+
+ lines =<< trim END
+ def Test ()
+ echo 'test'
+ enddef
+ END
+ CheckScriptFailure(lines, 'E1068:', 1)
+
+ lines =<< trim END
+ func Test ()
+ echo 'test'
+ endfunc
+ END
+ CheckScriptSuccess(lines)
+enddef
+
def Test_enddef_dict_key()
var d = {
enddef: 'x',
diff --git a/src/userfunc.c b/src/userfunc.c
index 9216685823..0f28b028e7 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -3199,6 +3199,12 @@ define_function(exarg_T *eap, char_u *name_arg)
p = vim_strchr(p, '(');
}
+ if ((vim9script || eap->cmdidx == CMD_def) && VIM_ISWHITE(p[-1]))
+ {
+ semsg(_(e_no_white_space_allowed_before_str), "(");
+ goto ret_free;
+ }
+
// In Vim9 script only global functions can be redefined.
if (vim9script && eap->forceit && !is_global)
{
diff --git a/src/version.c b/src/version.c
index 43ad049da5..136448a352 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 */
/**/
+ 2405,
+/**/
2404,
/**/
2403,