patch 8.2.2744: Vim9: no way to explicitly ignore an argument
Problem: Vim9: no way to explicitly ignore an argument.
Solution: Use the underscore as the name for an ignored argument.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index e254f44..c02a324 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -2619,6 +2619,41 @@
delfunc g:Broken
enddef
+def Test_ignored_argument()
+ var lines =<< trim END
+ vim9script
+ def Ignore(_, _): string
+ return 'yes'
+ enddef
+ assert_equal('yes', Ignore(1, 2))
+
+ func Ok(_)
+ return a:_
+ endfunc
+ assert_equal('ok', Ok('ok'))
+
+ func Oktoo()
+ let _ = 'too'
+ return _
+ endfunc
+ assert_equal('too', Oktoo())
+ END
+ CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ def Ignore(_: string): string
+ return _
+ enddef
+ defcompile
+ END
+ CheckScriptFailure(lines, 'E1181:', 1)
+
+ lines =<< trim END
+ var _ = 1
+ END
+ CheckDefAndScriptFailure(lines, 'E1181:', 1)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker