patch 8.2.2558: no error if a lambda argument shadows a variable
Problem: No error if a lambda argument shadows a variable.
Solution: Check that the argument name shadows a local, argument or script
variable. (closes #7898)
diff --git a/src/vim9script.c b/src/vim9script.c
index 39d2eeb..68d7f5e 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -370,7 +370,7 @@
if (eval_isnamec1(*arg))
while (eval_isnamec(*arg))
++arg;
- if (check_defined(p, arg - p, cctx) == FAIL)
+ if (check_defined(p, arg - p, cctx, FALSE) == FAIL)
goto erret;
as_name = vim_strnsave(p, arg - p);
arg = skipwhite_and_linebreak(arg, evalarg);
@@ -555,7 +555,7 @@
}
else
{
- if (check_defined(name, len, cctx) == FAIL)
+ if (check_defined(name, len, cctx, FALSE) == FAIL)
goto erret;
imported = new_imported(gap != NULL ? gap
@@ -567,7 +567,7 @@
{
imported->imp_name = name;
((char_u **)names.ga_data)[i] = NULL;
- }
+ }
else
{
// "import This as That ..."