mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
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.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user