diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-26 22:24:43 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-26 22:24:43 +0100 |
commit | 31d9948e3a2529c2f619d56bdb48291dc261233d (patch) | |
tree | 9d190d121b8851b0d861455ba61b09fd03da8776 /src/testdir/test_vim9_func.vim | |
parent | 5cb53b7afe6bde8f2bf6fc6b65b86071b67a8554 (diff) |
patch 8.2.5026: Vim9: a few lines not covered by testsv8.2.5026
Problem: Vim9: a few lines not covered by tests.
Solution: Delete dead code. Add a few test cases. make "12->func()" work.
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r-- | src/testdir/test_vim9_func.vim | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index fcf37d5f51..33a66151e7 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -4051,6 +4051,63 @@ def Test_too_many_arguments() echo [0, 1, 2]->map((_) => 123) END v9.CheckDefAndScriptFailure(lines, ['E176', 'E1106: One argument too many'], 1) + + lines =<< trim END + vim9script + def OneArgument(arg: string) + echo arg + enddef + var Ref = OneArgument + Ref('a', 'b') + END + v9.CheckScriptFailure(lines, 'E118:') +enddef + +def Test_funcref_with_base() + var lines =<< trim END + vim9script + def TwoArguments(str: string, nr: number) + echo str nr + enddef + var Ref = TwoArguments + Ref('a', 12) + 'b'->Ref(34) + END + v9.CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + def TwoArguments(str: string, nr: number) + echo str nr + enddef + var Ref = TwoArguments + 'a'->Ref('b') + END + v9.CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got string', 6) + + lines =<< trim END + vim9script + def TwoArguments(str: string, nr: number) + echo str nr + enddef + var Ref = TwoArguments + 123->Ref(456) + END + v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got number') + + lines =<< trim END + vim9script + def TwoArguments(nr: number, str: string) + echo str nr + enddef + var Ref = TwoArguments + 123->Ref('b') + def AndNowCompiled() + 456->Ref('x') + enddef + AndNowCompiled() + END + v9.CheckScriptSuccess(lines) enddef def Test_closing_brace_at_start_of_line() |