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 #6439)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index edc655a..ede464e 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1071,6 +1071,27 @@
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