1
0
forked from aniani/vim

patch 8.2.2747: Vim9: not always an error for too many function arguments

Problem:    Vim9: not always an error for too many function arguments.
Solution:   Check for getting too many arguments.
This commit is contained in:
Bram Moolenaar
2021-04-10 20:10:26 +02:00
parent 87795939d0
commit bb8a7ce0a1
4 changed files with 27 additions and 4 deletions

View File

@@ -2102,7 +2102,7 @@ def Test_script_var_in_lambda()
var lines =<< trim END
vim9script
var script = 'test'
assert_equal(['test'], map(['one'], () => script))
assert_equal(['test'], map(['one'], (_, _) => script))
END
CheckScriptSuccess(lines)
enddef
@@ -2355,7 +2355,7 @@ def Test_block_scoped_var()
var x = ['a', 'b', 'c']
if 1
var y = 'x'
map(x, () => y)
map(x, (_, _) => y)
endif
var z = x
assert_equal(['x', 'x', 'x'], z)
@@ -2654,6 +2654,17 @@ def Test_ignored_argument()
CheckDefAndScriptFailure(lines, 'E1181:', 1)
enddef
def Test_too_many_arguments()
var lines =<< trim END
echo [0, 1, 2]->map(() => 123)
END
CheckDefExecAndScriptFailure(lines, 'E1106: 2 arguments too many', 1)
lines =<< trim END
echo [0, 1, 2]->map((_) => 123)
END
CheckDefExecAndScriptFailure(lines, 'E1106: One argument too many', 1)
enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker