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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user