diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-12 14:21:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-12 14:21:11 +0200 |
commit | 575f24b3f3d8cd8bfc2da402c2938c0c7ace7877 (patch) | |
tree | e8b8828ac41f96f8205d08935bcc2223dd1f2c8e | |
parent | 040f975fc1de14ada5e0a7324bb5e51e461be2dd (diff) | |
download | vim-git-8.2.1425.tar.gz |
patch 8.2.1425: Vim9: cannot use call() without :callv8.2.1425
Problem: Vim9: cannot use call() without :call.
Solution: Do not skip over "call(". (closes #6689)
-rw-r--r-- | src/testdir/test_vim9_func.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 9 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 772b52ab9..24078f56e 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -290,6 +290,12 @@ def Test_call_def_varargs() CheckScriptFailure(lines, 'E1013:') enddef +def Test_call_call() + let l = [3, 2, 1] + call('reverse', [l]) + assert_equal([1, 2, 3], l) +enddef + let s:value = '' def FuncOneDefArg(opt = 'text') diff --git a/src/version.c b/src/version.c index ec86fb4f5..1ab7a618c 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1425, +/**/ 1424, /**/ 1423, diff --git a/src/vim9compile.c b/src/vim9compile.c index 72c26ce46..53dca8057 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -6484,8 +6484,15 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx) cmdmod = save_cmdmod; // Skip ":call" to get to the function name. + p = ea.cmd; if (checkforcmd(&ea.cmd, "call", 3)) - ea.cmd = skipwhite(ea.cmd); + { + if (*ea.cmd == '(') + // not for "call()" + ea.cmd = p; + else + ea.cmd = skipwhite(ea.cmd); + } if (!starts_with_colon) { |