diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-03-17 21:29:29 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-03-17 21:29:29 +0100 |
commit | 5f91e74bf968c9033474086b2d9cb457281c8aa6 (patch) | |
tree | 041be0bd7bf2994d992dc288ef301d719d0daa5d | |
parent | 3f32788000258aabe078b426e3d71962bee9d2d1 (diff) | |
download | vim-git-5f91e74bf968c9033474086b2d9cb457281c8aa6.tar.gz |
patch 8.2.2619: Vim9: no test for return type of lambdav8.2.2619
Problem: Vim9: no test for return type of lambda.
Solution: Add a test.
-rw-r--r-- | src/testdir/test_vim9_func.vim | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 73d8e37aa..2697c29e4 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -752,11 +752,26 @@ def Test_call_lambda_args() CheckDefFailure(lines, 'E1167:') enddef +def FilterWithCond(x: string, Cond: func(string): bool): bool + return Cond(x) +enddef + def Test_lambda_return_type() var lines =<< trim END var Ref = (): => 123 END CheckDefAndScriptFailure(lines, 'E1157:', 1) + + # this works + for x in ['foo', 'boo'] + echo FilterWithCond(x, (v) => v =~ '^b') + endfor + + # this fails + lines =<< trim END + echo FilterWithCond('foo', (v) => v .. '^b') + END + CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected func(string): bool but got func(any): string', 1) enddef def Test_lambda_uses_assigned_var() diff --git a/src/version.c b/src/version.c index 6ac96acbd..74eec468a 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2619, +/**/ 2618, /**/ 2617, |