comparison src/testdir/test_vim9_expr.vim @ 21387:8d58cbb07a12 v8.2.1244

patch 8.2.1244: Vim9: in lambda index assumes a list Commit: https://github.com/vim/vim/commit/6802cce407b8b181bcf3eafe701fa9f8a91f7a73 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 19 15:49:49 2020 +0200 patch 8.2.1244: Vim9: in lambda index assumes a list Problem: Vim9: in lambda index assumes a list. Solution: Use the value type to decide about list or dict. (closes https://github.com/vim/vim/issues/6479)
author Bram Moolenaar <Bram@vim.org>
date Sun, 19 Jul 2020 16:00:04 +0200
parents fb8c8fcb7b60
children 320581a133d9
comparison
equal deleted inserted replaced
21386:e29093c09d58 21387:8d58cbb07a12
1113 assert_equal('b', g:list_mixed[1]) 1113 assert_equal('b', g:list_mixed[1])
1114 1114
1115 call CheckDefExecFailure(["let x = g:anint[3]"], 'E714:') 1115 call CheckDefExecFailure(["let x = g:anint[3]"], 'E714:')
1116 call CheckDefFailure(["let x = g:list_mixed[xxx]"], 'E1001:') 1116 call CheckDefFailure(["let x = g:list_mixed[xxx]"], 'E1001:')
1117 call CheckDefFailure(["let x = [1,2,3]"], 'E1069:') 1117 call CheckDefFailure(["let x = [1,2,3]"], 'E1069:')
1118 call CheckDefExecFailure(["let x = g:list_mixed['xx']"], 'E39:') 1118 call CheckDefExecFailure(["let x = g:list_mixed['xx']"], 'E1029:')
1119 call CheckDefFailure(["let x = g:list_mixed["], 'E1097:') 1119 call CheckDefFailure(["let x = g:list_mixed["], 'E1097:')
1120 call CheckDefFailure(["let x = g:list_mixed[0"], 'E1097:') 1120 call CheckDefFailure(["let x = g:list_mixed[0"], 'E1097:')
1121 call CheckDefExecFailure(["let x = g:list_empty[3]"], 'E684:') 1121 call CheckDefExecFailure(["let x = g:list_empty[3]"], 'E684:')
1122 enddef 1122 enddef
1123 1123
1170 map(ll, {k, v -> v != 8 && v 1170 map(ll, {k, v -> v != 8 && v
1171 != 9 1171 != 9
1172 && v % 2 == 0 ? 111 : 222 1172 && v % 2 == 0 ? 111 : 222
1173 }) 1173 })
1174 assert_equal([111, 222, 111], ll) 1174 assert_equal([111, 222, 111], ll)
1175
1176 let dl = [{'key': 0}, {'key': 22}]->filter({ _, v -> v['key'] })
1177 assert_equal([{'key': 22}], dl)
1175 1178
1176 call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:') 1179 call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:')
1177 enddef 1180 enddef
1178 1181
1179 def Test_expr7_lambda_vim9script() 1182 def Test_expr7_lambda_vim9script()