0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

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 #5572)
This commit is contained in:
Bram Moolenaar
2020-02-04 21:24:15 +01:00
parent a5edb670dc
commit 26e117e9bc
4 changed files with 42 additions and 3 deletions

View File

@@ -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')