diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-01-24 21:14:20 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-01-24 21:14:20 +0100 |
commit | 4efd9948291801bffebf36b4a9910d08ff981987 (patch) | |
tree | add86f65dc8d8d601dc48b4ce9b833db363561c5 | |
parent | 107e9cecf72928b4aaaf08b73bf2d191924ab695 (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.vim | 32 | ||||
-rw-r--r-- | src/userfunc.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |