diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-02-23 12:05:46 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-02-23 12:05:46 +0100 |
commit | bc327ccc3dd408463fc74266f57b879888a13e51 (patch) | |
tree | a8aa33ef7253b63b41431a23472db1508aceacab | |
parent | 9cb577a68277d46cc1134ef1723e90ff5f1d1b5c (diff) | |
download | vim-git-bc327ccc3dd408463fc74266f57b879888a13e51.tar.gz |
patch 8.2.2544: Vim9: error for argument when checking for lambdav8.2.2544
Problem: Vim9: error for argument when checking for lambda.
Solution: Respect the skip flag. (closes #7887)
-rw-r--r-- | src/testdir/test_vim9_expr.vim | 8 | ||||
-rw-r--r-- | src/userfunc.c | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 348fb934d..3e69a0dd4 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -1922,6 +1922,14 @@ def Test_expr7_lambda() CheckDefSuccess(['var Fx = (a) => [0,', ' 1]']) CheckDefFailure(['var Fx = (a) => [0', ' 1]'], 'E696:', 2) + + # no error for existing script variable when checking for lambda + lines =<< trim END + vim9script + var name = 0 + eval (name + 2) / 3 + END + CheckScriptSuccess(lines) enddef def NewLambdaWithComments(): func diff --git a/src/userfunc.c b/src/userfunc.c index 8579c3b38..b49cef178 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -82,7 +82,8 @@ one_function_arg( } // Vim9 script: cannot use script var name for argument. - if (argtypes != NULL && script_var_exists(arg, p - arg, FALSE, NULL) == OK) + if (!skip && argtypes != NULL && script_var_exists(arg, p - arg, + FALSE, NULL) == OK) { semsg(_(e_variable_already_declared_in_script), arg); return arg; diff --git a/src/version.c b/src/version.c index 235e34492..aa6d34380 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 */ /**/ + 2544, +/**/ 2543, /**/ 2542, |