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