Mercurial > vim
comparison src/testdir/test_vim9_expr.vim @ 21277:1e5c29d4e5b3 v8.2.1189
patch 8.2.1189: Vim9: line continuation in lambda doesn't always work
Commit: https://github.com/vim/vim/commit/8af81d656a4c501611f6211b6379ea9dd650c545
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 12 16:32:19 2020 +0200
patch 8.2.1189: Vim9: line continuation in lambda doesn't always work
Problem: Vim9: line continuation in lambda doesn't always work.
Solution: Do not use a local evalarg unless there isn't one. (closes https://github.com/vim/vim/issues/6439)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 12 Jul 2020 16:45:04 +0200 |
parents | 71bd2f9adb61 |
children | b991565745fb |
comparison
equal
deleted
inserted
replaced
21276:18bfb4c4732e | 21277:1e5c29d4e5b3 |
---|---|
1069 def Test_expr7_lambda() | 1069 def Test_expr7_lambda() |
1070 let La = { -> 'result'} | 1070 let La = { -> 'result'} |
1071 assert_equal('result', La()) | 1071 assert_equal('result', La()) |
1072 assert_equal([1, 3, 5], [1, 2, 3]->map({key, val -> key + val})) | 1072 assert_equal([1, 3, 5], [1, 2, 3]->map({key, val -> key + val})) |
1073 | 1073 |
1074 " line continuation inside lambda with "cond ? expr : expr" works | |
1075 let ll = range(3) | |
1076 map(ll, {k, v -> v % 2 ? { | |
1077 '111': 111 } : {} | |
1078 }) | |
1079 assert_equal([{}, {'111': 111}, {}], ll) | |
1080 | |
1081 ll = range(3) | |
1082 map(ll, {k, v -> v == 8 || v | |
1083 == 9 | |
1084 || v % 2 ? 111 : 222 | |
1085 }) | |
1086 assert_equal([222, 111, 222], ll) | |
1087 | |
1088 ll = range(3) | |
1089 map(ll, {k, v -> v != 8 && v | |
1090 != 9 | |
1091 && v % 2 == 0 ? 111 : 222 | |
1092 }) | |
1093 assert_equal([111, 222, 111], ll) | |
1094 | |
1074 call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:') | 1095 call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:') |
1075 enddef | 1096 enddef |
1076 | 1097 |
1077 def Test_expr7_lambda_vim9script() | 1098 def Test_expr7_lambda_vim9script() |
1078 let lines =<< trim END | 1099 let lines =<< trim END |