0
0
mirror of https://github.com/vim/vim.git synced 2025-11-09 10:37:17 -05:00

patch 8.2.0552: Vim9: some errors not covered by tests

Problem:    Vim9: some errors not covered by tests.
Solution:   Add more tests.  Check Funcref argument types.
This commit is contained in:
Bram Moolenaar
2020-04-12 14:39:53 +02:00
parent 1363a30cef
commit 99aaf0ce7c
3 changed files with 60 additions and 5 deletions

View File

@@ -96,6 +96,7 @@ def Test_call_default_args()
assert_fails('call MyDefaultArgs("one", "two")', 'E118:')
call CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef'], 'E1001:')
call CheckScriptFailure(['def Func(arg: number = "text")', 'enddef'], 'E1013: argument 1: type mismatch, expected number but got string')
enddef
func Test_call_default_args_from_func()
@@ -196,6 +197,26 @@ def Test_call_func_defined_later()
call assert_fails('call NotDefined("one")', 'E117:')
enddef
def CombineFuncrefTypes()
" same arguments, different return type
let Ref1: func(bool): string
let Ref2: func(bool): number
let Ref3: func(bool): any
Ref3 = g:cond ? Ref1 : Ref2
" different number of arguments
let Refa1: func(bool): number
let Refa2: func(bool, number): number
let Refa3: func: number
Refa3 = g:cond ? Refa1 : Refa2
" different argument types
let Refb1: func(bool, string): number
let Refb2: func(string, number): number
let Refb3: func(any, any): number
Refb3 = g:cond ? Refb1 : Refb2
enddef
func DefinedLater(arg)
return a:arg
endfunc