diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-08 16:47:30 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-08 16:47:30 +0200 |
commit | 5a849da57c5fb54ffcffd436a9e00ef40fdf094c (patch) | |
tree | a3e29fde05cb840316c5e043635e64407c46087e /src/testdir | |
parent | 98b4f145eb89405021e23a4a37db51d60a75a1d0 (diff) | |
download | vim-git-5a849da57c5fb54ffcffd436a9e00ef40fdf094c.tar.gz |
patch 8.2.1396: Vim9: no error for unexpectedly returning a valuev8.2.1396
Problem: Vim9: no error for unexpectedly returning a value.
Solution: Only set the return type for lambda's. Make using function type
in a function reference work.
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_func.vim | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index d39584154..4a020c9af 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -503,16 +503,48 @@ def Test_error_in_nested_function() enddef def Test_return_type_wrong() - CheckScriptFailure(['def Func(): number', 'return "a"', 'enddef', 'defcompile'], 'expected number but got string') - CheckScriptFailure(['def Func(): string', 'return 1', 'enddef', 'defcompile'], 'expected string but got number') - CheckScriptFailure(['def Func(): void', 'return "a"', 'enddef', 'defcompile'], 'E1096: Returning a value in a function without a return type') - CheckScriptFailure(['def Func()', 'return "a"', 'enddef', 'defcompile'], 'E1096: Returning a value in a function without a return type') - - CheckScriptFailure(['def Func(): number', 'return', 'enddef', 'defcompile'], 'E1003:') + CheckScriptFailure([ + 'def Func(): number', + 'return "a"', + 'enddef', + 'defcompile'], 'expected number but got string') + CheckScriptFailure([ + 'def Func(): string', + 'return 1', + 'enddef', + 'defcompile'], 'expected string but got number') + CheckScriptFailure([ + 'def Func(): void', + 'return "a"', + 'enddef', + 'defcompile'], + 'E1096: Returning a value in a function without a return type') + CheckScriptFailure([ + 'def Func()', + 'return "a"', + 'enddef', + 'defcompile'], + 'E1096: Returning a value in a function without a return type') + + CheckScriptFailure([ + 'def Func(): number', + 'return', + 'enddef', + 'defcompile'], 'E1003:') CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:') CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:') CheckScriptFailure(['def Func()', 'return 1'], 'E1057:') + + CheckScriptFailure([ + 'vim9script', + 'def FuncB()', + ' return 123', + 'enddef', + 'def FuncA()', + ' FuncB()', + 'enddef', + 'defcompile'], 'E1096:') enddef def Test_arg_type_wrong() |