diff src/testdir/test_vim9_expr.vim @ 26737:10d3105030ab v8.2.3897

patch 8.2.3897: Vim9: second argument of map() and filter() not checked Commit: https://github.com/vim/vim/commit/1802405d71da20dff510690bf14f6da085836125 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 25 21:43:28 2021 +0000 patch 8.2.3897: Vim9: second argument of map() and filter() not checked Problem: Vim9: the second argument of map() and filter() is not checked at compile time. Solution: Add more specific type check for the second argument.
author Bram Moolenaar <Bram@vim.org>
date Sat, 25 Dec 2021 22:45:02 +0100
parents c3cffd372c6f
children fc19375787dd
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2077,7 +2077,7 @@ def Test_expr7_lambda()
             )
       assert_equal([111, 222, 111], ll)
 
-      var dl = [{key: 0}, {key: 22}]->filter(( _, v) => v['key'] )
+      var dl = [{key: 0}, {key: 22}]->filter(( _, v) => !!v['key'] )
       assert_equal([{key: 22}], dl)
 
       dl = [{key: 12}, {['foo']: 34}]
@@ -2236,7 +2236,7 @@ def Test_expr7_new_lambda()
             )
       assert_equal([111, 222, 111], ll)
 
-      var dl = [{key: 0}, {key: 22}]->filter(( _, v) => v['key'] )
+      var dl = [{key: 0}, {key: 22}]->filter(( _, v) => !!v['key'] )
       assert_equal([{key: 22}], dl)
 
       dl = [{key: 12}, {['foo']: 34}]
@@ -2308,7 +2308,7 @@ def Test_expr7_lambda_vim9script()
   lines =<< trim END
       search('"', 'cW', 0, 0, () =>
 	synstack('.', col('.'))
-          ->map((_, v) => synIDattr(v, 'name'))->len())
+          ->mapnew((_, v) => synIDattr(v, 'name'))->len())
   END
   CheckDefAndScriptSuccess(lines)
 enddef