Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 19295:2a63b7f5802a v8.2.0206
patch 8.2.0206: calling Vim9 function using default argument fails
Commit: https://github.com/vim/vim/commit/26e117e9bcc09926d654b5993d61acde6b5749db
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 4 21:24:15 2020 +0100
patch 8.2.0206: calling Vim9 function using default argument fails
Problem: Calling Vim9 function using default argument fails.
Solution: Give an appropriate error. (closes https://github.com/vim/vim/issues/5572)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 04 Feb 2020 21:30:04 +0100 |
parents | 86665583dc83 |
children | 84703c85a583 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -131,6 +131,34 @@ def Test_call_varargs() assert_equal('one,two,three', MyVarargs('one', 'two', 'three')) enddef +"def Test_call_func_defined_later() +" call assert_equal('one', DefineLater('one')) +" call assert_fails('call NotDefined("one")', 'E99:') +"enddef + +func DefineLater(arg) + return a:arg +endfunc + +def MyDefaultArgs(name = 'string'): string + return name +enddef + +func Test_call_default_args_from_func() + " TODO: implement using default value for optional argument + "call assert_equal('string', MyDefaultArgs()) + call assert_fails('call MyDefaultArgs()', 'optional arguments not implemented yet') + call assert_equal('one', MyDefaultArgs('one')) + call assert_fails('call MyDefaultArgs("one", "two")', 'E118:') +endfunc + +def Test_call_default_args() + " TODO: implement using default value for optional argument + "assert_equal('string', MyDefaultArgs()) + assert_equal('one', MyDefaultArgs('one')) + assert_fails('call MyDefaultArgs("one", "two")', 'E118:') +enddef + def Test_return_type_wrong() " TODO: why is ! needed for Mac and FreeBSD? CheckScriptFailure(['def Func(): number', 'return "a"', 'enddef'], 'expected number but got string')