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.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index c02a324..6b353dd 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -2102,7 +2102,7 @@
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 @@
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 @@
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