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