summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-12 14:21:11 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-12 14:21:11 +0200
commit575f24b3f3d8cd8bfc2da402c2938c0c7ace7877 (patch)
treee8b8828ac41f96f8205d08935bcc2223dd1f2c8e
parent040f975fc1de14ada5e0a7324bb5e51e461be2dd (diff)
downloadvim-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.vim6
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c9
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)
{