Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 26638:6fd15d82e898 v8.2.3848
patch 8.2.3848: cannot use reduce() for a string
Commit: https://github.com/vim/vim/commit/0ccb5842f5fb103763d106c7aa364d758343c35a
Author: rbtnn <naru123456789@gmail.com>
Date: Sat Dec 18 18:33:46 2021 +0000
patch 8.2.3848: cannot use reduce() for a string
Problem: Cannot use reduce() for a string.
Solution: Make reduce() work with a string. (Naruhiko Nishino, closes https://github.com/vim/vim/issues/9366)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 18 Dec 2021 19:45:03 +0100 |
parents | 501b1a24d032 |
children | a07323eb647f |
comparison
equal
deleted
inserted
replaced
26637:eeac85e187e7 | 26638:6fd15d82e898 |
---|---|
1230 def Wrong_dict_key_type(items: list<number>): list<number> | 1230 def Wrong_dict_key_type(items: list<number>): list<number> |
1231 return filter(items, (_, val) => get({[val]: 1}, 'x')) | 1231 return filter(items, (_, val) => get({[val]: 1}, 'x')) |
1232 enddef | 1232 enddef |
1233 | 1233 |
1234 def Test_filter() | 1234 def Test_filter() |
1235 CheckDefAndScriptFailure2(['filter(1.1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got float', 'E1228: List, Dictionary, Blob or String required for argument 1') | 1235 CheckDefAndScriptFailure2(['filter(1.1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got float', 'E1251: List, Dictionary, Blob or String required for argument 1') |
1236 assert_equal([], filter([1, 2, 3], '0')) | 1236 assert_equal([], filter([1, 2, 3], '0')) |
1237 assert_equal([1, 2, 3], filter([1, 2, 3], '1')) | 1237 assert_equal([1, 2, 3], filter([1, 2, 3], '1')) |
1238 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) | 1238 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) |
1239 enddef | 1239 enddef |
1240 | 1240 |
2026 endif | 2026 endif |
2027 enddef | 2027 enddef |
2028 | 2028 |
2029 def Test_map() | 2029 def Test_map() |
2030 if has('channel') | 2030 if has('channel') |
2031 CheckDefAndScriptFailure2(['map(test_null_channel(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got channel', 'E1228: List, Dictionary, Blob or String required for argument 1') | 2031 CheckDefAndScriptFailure2(['map(test_null_channel(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got channel', 'E1251: List, Dictionary, Blob or String required for argument 1') |
2032 endif | 2032 endif |
2033 CheckDefAndScriptFailure2(['map(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1228: List, Dictionary, Blob or String required for argument 1') | 2033 CheckDefAndScriptFailure2(['map(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1') |
2034 enddef | 2034 enddef |
2035 | 2035 |
2036 def Test_map_failure() | 2036 def Test_map_failure() |
2037 CheckFeature job | 2037 CheckFeature job |
2038 | 2038 |
2145 mapcheck('', '')->assert_equal('') | 2145 mapcheck('', '')->assert_equal('') |
2146 enddef | 2146 enddef |
2147 | 2147 |
2148 def Test_mapnew() | 2148 def Test_mapnew() |
2149 if has('channel') | 2149 if has('channel') |
2150 CheckDefAndScriptFailure2(['mapnew(test_null_job(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got job', 'E1228: List, Dictionary, Blob or String required for argument 1') | 2150 CheckDefAndScriptFailure2(['mapnew(test_null_job(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got job', 'E1251: List, Dictionary, Blob or String required for argument 1') |
2151 endif | 2151 endif |
2152 CheckDefAndScriptFailure2(['mapnew(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1228: List, Dictionary, Blob or String required for argument 1') | 2152 CheckDefAndScriptFailure2(['mapnew(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1') |
2153 enddef | 2153 enddef |
2154 | 2154 |
2155 def Test_mapset() | 2155 def Test_mapset() |
2156 CheckDefAndScriptFailure2(['mapset(1, true, {})'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 2156 CheckDefAndScriptFailure2(['mapset(1, true, {})'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2157 CheckDefAndScriptFailure2(['mapset("a", 2, {})'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') | 2157 CheckDefAndScriptFailure2(['mapset("a", 2, {})'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') |
2680 CheckDefAndScriptFailure2(['readfile("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') | 2680 CheckDefAndScriptFailure2(['readfile("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') |
2681 CheckDefExecAndScriptFailure(['readfile("")'], 'E1175: Non-empty string required for argument 1') | 2681 CheckDefExecAndScriptFailure(['readfile("")'], 'E1175: Non-empty string required for argument 1') |
2682 enddef | 2682 enddef |
2683 | 2683 |
2684 def Test_reduce() | 2684 def Test_reduce() |
2685 CheckDefAndScriptFailure2(['reduce({a: 10}, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E897: List or Blob required') | 2685 CheckDefAndScriptFailure2(['reduce({a: 10}, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1252: String, List or Blob required for argument 1') |
2686 assert_equal(6, [1, 2, 3]->reduce((r, c) => r + c, 0)) | 2686 assert_equal(6, [1, 2, 3]->reduce((r, c) => r + c, 0)) |
2687 assert_equal(11, 0z0506->reduce((r, c) => r + c, 0)) | 2687 assert_equal(11, 0z0506->reduce((r, c) => r + c, 0)) |
2688 enddef | 2688 enddef |
2689 | 2689 |
2690 def Test_reltime() | 2690 def Test_reltime() |