patch 8.2.1074: Vim9: no line break allowed after some operators
Problem: Vim9: no line break allowed after some operators.
Solution: Skip a line break after the operator. Add
eval_may_get_next_line() to simplify checking for a line break.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 0d2a2b0..bf4f7d2 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -64,6 +64,15 @@
assert_equal('no', var)
END
CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ let var = v:false ?
+ 'yes' :
+ 'no'
+ assert_equal('no', var)
+ END
+ CheckScriptSuccess(lines)
enddef
func Test_expr1_fails()
@@ -135,6 +144,15 @@
assert_equal(1, var)
END
CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ let var = v:false ||
+ v:true ||
+ v:false
+ assert_equal(1, var)
+ END
+ CheckScriptSuccess(lines)
enddef
func Test_expr2_fails()
@@ -198,6 +216,15 @@
assert_equal(1, var)
END
CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ let var = v:true &&
+ v:true &&
+ v:true
+ assert_equal(1, var)
+ END
+ CheckScriptSuccess(lines)
enddef
func Test_expr3_fails()
@@ -549,6 +576,14 @@
lines =<< trim END
vim9script
+ let var = 123 ==
+ 123
+ assert_equal(1, var)
+ END
+ CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
let list = [1, 2, 3]
let var = list
is list