1
0
forked from aniani/vim

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)
This commit is contained in:
Bram Moolenaar
2021-02-28 16:55:11 +01:00
parent 087b5ff35d
commit 057e84afe5
9 changed files with 80 additions and 33 deletions

View File

@@ -596,7 +596,7 @@ def Test_call_wrong_args()
echo nr
enddef
END
CheckScriptFailure(lines, 'E1054:')
CheckScriptFailure(lines, 'E1168:')
lines =<< trim END
vim9script
@@ -699,6 +699,31 @@ def Test_call_lambda_args()
Ref = (x, y, z) => 0
END
CheckDefAndScriptFailure(lines, 'E1012:')
lines =<< trim END
var one = 1
var l = [1, 2, 3]
echo map(l, (one) => one)
END
CheckDefFailure(lines, 'E1167:')
CheckScriptFailure(['vim9script'] + lines, 'E1168:')
lines =<< trim END
def ShadowLocal()
var one = 1
var l = [1, 2, 3]
echo map(l, (one) => one)
enddef
END
CheckDefFailure(lines, 'E1167:')
lines =<< trim END
def Shadowarg(one: number)
var l = [1, 2, 3]
echo map(l, (one) => one)
enddef
END
CheckDefFailure(lines, 'E1167:')
enddef
def Test_lambda_return_type()