comparison src/testdir/test_vim9_builtin.vim @ 26765:e5fdd48c442b v8.2.3911

patch 8.2.3911: Vim9: type check for filter() does not accept unknown Commit: https://github.com/vim/vim/commit/ef8f04b1d1daf2e0be8fa38dedcae84ebfc5ffb4 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 27 12:29:19 2021 +0000 patch 8.2.3911: Vim9: type check for filter() does not accept unknown Problem: Vim9: type check for filter() does not accept unknown. Solution: Also accept unknown for the return type. (closes https://github.com/vim/vim/issues/9413)
author Bram Moolenaar <Bram@vim.org>
date Mon, 27 Dec 2021 13:30:03 +0100
parents 9cb27a68a01b
children 2df40c348c70
comparison
equal deleted inserted replaced
26764:dc416a3203d1 26765:e5fdd48c442b
1251 CheckDefAndScriptFailure(lines, ['E1013: Argument 2: type mismatch, expected func(...): bool', 'E1135: Using a String as a Bool:']) 1251 CheckDefAndScriptFailure(lines, ['E1013: Argument 2: type mismatch, expected func(...): bool', 'E1135: Using a String as a Bool:'])
1252 1252
1253 assert_equal([], filter([1, 2, 3], '0')) 1253 assert_equal([], filter([1, 2, 3], '0'))
1254 assert_equal([1, 2, 3], filter([1, 2, 3], '1')) 1254 assert_equal([1, 2, 3], filter([1, 2, 3], '1'))
1255 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) 1255 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20'))
1256
1257 def GetFiltered(): list<number>
1258 var Odd: func = (_, v) => v % 2
1259 return range(3)->filter(Odd)
1260 enddef
1261 assert_equal([1], GetFiltered())
1256 enddef 1262 enddef
1257 1263
1258 def Test_filter_wrong_dict_key_type() 1264 def Test_filter_wrong_dict_key_type()
1259 assert_fails('Wrong_dict_key_type([1, v:null, 3])', 'E1013:') 1265 assert_fails('Wrong_dict_key_type([1, v:null, 3])', 'E1013:')
1260 enddef 1266 enddef