Mercurial > vim
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 |