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()