comparison src/testdir/test_vim9_func.vim @ 19985:f863aa96cae5 v8.2.0548

patch 8.2.0548: Vim9: not all possible func type errors tested Commit: https://github.com/vim/vim/commit/08938eeba463e98d23ba7b88e81bd252c981d235 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 11 23:17:17 2020 +0200 patch 8.2.0548: Vim9: not all possible func type errors tested Problem: Vim9: not all possible func type errors tested. Solution: Add more tests.
author Bram Moolenaar <Bram@vim.org>
date Sat, 11 Apr 2020 23:30:04 +0200
parents 4e8e0ce576af
children efe864a7ce4f
comparison
equal deleted inserted replaced
19984:f6ec09f04b0c 19985:f863aa96cae5
440 def FuncOneArgRetNumber(arg: number): number 440 def FuncOneArgRetNumber(arg: number): number
441 funcResult = arg 441 funcResult = arg
442 return arg 442 return arg
443 enddef 443 enddef
444 444
445 def FuncTwoArgNoRet(one: bool, two: number)
446 funcResult = two
447 enddef
448
445 def FuncOneArgRetString(arg: string): string 449 def FuncOneArgRetString(arg: string): string
446 return arg 450 return arg
447 enddef 451 enddef
448 452
449 def FuncOneArgRetAny(arg: any): any 453 def FuncOneArgRetAny(arg: any): any
509 CheckDefFailure(['let ref1: func()'], 'E704:') 513 CheckDefFailure(['let ref1: func()'], 'E704:')
510 514
511 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number') 515 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number')
512 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1013: type mismatch, expected func() but got func(number)') 516 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1013: type mismatch, expected func() but got func(number)')
513 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1013: type mismatch, expected func() but got func(number): number') 517 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1013: type mismatch, expected func() but got func(number): number')
518 CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(bool) but got func(bool, number)')
519 CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(?bool) but got func(bool, number)')
520 CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(...bool) but got func(bool, number)')
521
522 call CheckDefFailure(['let RefWrong: func(string ,number)'], 'E1068:')
523 call CheckDefFailure(['let RefWrong: func(string,number)'], 'E1069:')
524 call CheckDefFailure(['let RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E740:')
525 call CheckDefFailure(['let RefWrong: func(bool):string'], 'E1069:')
514 enddef 526 enddef
515 527
516 def Test_func_return_type() 528 def Test_func_return_type()
517 let nr: number 529 let nr: number
518 nr = FuncNoArgRetNumber() 530 nr = FuncNoArgRetNumber()