diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-06-24 16:42:25 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-06-24 16:42:25 +0100 |
commit | 2d8e9985440d2f1ebb1be55296f371e10739bc76 (patch) | |
tree | 0a410b4af19d8892d4ad11688b67715a41bffab8 /src/testdir/test_vim9_builtin.vim | |
parent | 279de0cd1f58ea520826a3dd1c5562a71157b23b (diff) |
patch 9.0.1660: error for using matchfuzzy() returning a list of dictsv9.0.1660
Problem: Error for using matchfuzzy() in Vim9 script returning a list of
dicts.
Solution: Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan,
closes #12574)
Diffstat (limited to 'src/testdir/test_vim9_builtin.vim')
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index b76db7d635..23a68358cb 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -2821,6 +2821,15 @@ def Test_matchfuzzy() v9.CheckDefAndScriptFailure(['matchfuzzy([], 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2']) v9.CheckDefAndScriptFailure(['matchfuzzy([], "a", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3']) matchfuzzy(['abc', 'xyz'], '')->assert_equal([]) + var lines =<< trim END + var items = [{name: 'xyz', id: 1}, {name: 'def', id: 2}, + {name: 'abc', id: 3}] + var l: list<dict<any>> = matchfuzzy(items, 'abc', {key: 'name'}) + assert_equal([{name: 'abc', id: 3}], l) + var k: list<string> = matchfuzzy(['one', 'two', 'who'], 'o') + assert_equal(['one', 'two', 'who'], k) + END + v9.CheckDefAndScriptSuccess(lines) enddef def Test_matchfuzzypos() @@ -2828,6 +2837,15 @@ def Test_matchfuzzypos() v9.CheckDefAndScriptFailure(['matchfuzzypos([], 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2']) v9.CheckDefAndScriptFailure(['matchfuzzypos([], "a", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3']) matchfuzzypos(['abc', 'xyz'], '')->assert_equal([[], [], []]) + var lines =<< trim END + var items = [{name: 'xyz', id: 1}, {name: 'def', id: 2}, + {name: 'abc', id: 3}] + var l: list<dict<any>> = matchfuzzypos(items, 'abc', {key: 'name'})[0] + assert_equal([{name: 'abc', id: 3}], l) + var k: list<string> = matchfuzzypos(['one', 'two', 'who'], 'o')[0] + assert_equal(['one', 'two', 'who'], k) + END + v9.CheckDefAndScriptSuccess(lines) enddef def Test_matchlist() |