summaryrefslogtreecommitdiff
path: root/src/testdir/test_vim9_func.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-24 23:45:24 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-24 23:45:24 +0200
commit6ff71d8b7fbdf667a2f119a2487302e240961816 (patch)
tree90e14c4469b447139f22501d5ff942441c90ece8 /src/testdir/test_vim9_func.vim
parentf40e51a880a95f94dbbbecc9476559506c2cc345 (diff)
downloadvim-git-6ff71d8b7fbdf667a2f119a2487302e240961816.tar.gz
patch 8.2.0820: Vim9: function type isn't set until compiledv8.2.0820
Problem: Vim9: function type isn't set until compiled. Solution: Set function type early.
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r--src/testdir/test_vim9_func.vim13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index d099bd2cb..6c661111a 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -560,8 +560,7 @@ def Test_func_type_part()
RefVoid = FuncNoArgNoRet
RefVoid = FuncOneArgNoRet
CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number')
-" TODO: these should fail
-" CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1013: type mismatch, expected func() but got func(): string')
+ CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1013: type mismatch, expected func() but got func(): string')
let RefAny: func(): any
RefAny = FuncNoArgRetNumber
@@ -573,8 +572,7 @@ def Test_func_type_part()
RefNr = FuncNoArgRetNumber
RefNr = FuncOneArgRetNumber
CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1013: type mismatch, expected func(): number but got func()')
-" TODO: should fail
-" CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1013: type mismatch, expected func(): number but got func(): string')
+ CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1013: type mismatch, expected func(): number but got func(): string')
let RefStr: func: string
RefStr = FuncNoArgRetString
@@ -589,10 +587,9 @@ def Test_func_type_fails()
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number')
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1013: type mismatch, expected func() but got func(number)')
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1013: type mismatch, expected func() but got func(number): number')
-" TODO: these don't fail
-" CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(bool) but got func(bool, number)')
-" CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(?bool) but got func(bool, number)')
-" CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(...bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(?bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(...bool) but got func(bool, number)')
call CheckDefFailure(['let RefWrong: func(string ,number)'], 'E1068:')
call CheckDefFailure(['let RefWrong: func(string,number)'], 'E1069:')