diff 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
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1071,6 +1071,27 @@ def Test_expr7_lambda()
   assert_equal('result', La())
   assert_equal([1, 3, 5], [1, 2, 3]->map({key, val -> key + val}))
 
+  " line continuation inside lambda with "cond ? expr : expr" works
+  let ll = range(3)
+  map(ll, {k, v -> v % 2 ? {
+	    '111': 111 } : {}
+	})
+  assert_equal([{}, {'111': 111}, {}], ll)
+
+  ll = range(3)
+  map(ll, {k, v -> v == 8 || v
+		== 9
+		|| v % 2 ? 111 : 222
+	})
+  assert_equal([222, 111, 222], ll)
+
+  ll = range(3)
+  map(ll, {k, v -> v != 8 && v
+		!= 9
+		&& v % 2 == 0 ? 111 : 222
+	})
+  assert_equal([111, 222, 111], ll)
+
   call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:')
 enddef