patch 8.2.2349: Vim9: cannot handle line break after parenthesis at line end
Problem: Vim9: cannot handle line break after parenthesis at line end.
Solution: Skip over line break. (closes #7677)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 50537c8..a45d0ea 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2523,18 +2523,26 @@
def Test_expr7_parens()
# (expr)
- assert_equal(4, (6 * 4) / 6)
- assert_equal(0, 6 * ( 4 / 6 ))
-
- assert_equal(6, +6)
- assert_equal(-6, -6)
- assert_equal(false, !-3)
- assert_equal(true, !+0)
-enddef
-
-def Test_expr7_parens_vim9script()
var lines =<< trim END
- vim9script
+ assert_equal(4, (6 * 4) / 6)
+ assert_equal(0, 6 * ( 4 / 6 ))
+
+ assert_equal(6, +6)
+ assert_equal(-6, -6)
+ assert_equal(false, !-3)
+ assert_equal(true, !+0)
+
+ assert_equal(7, 5 + (
+ 2))
+ assert_equal(7, 5 + (
+ 2
+ ))
+ assert_equal(7, 5 + ( # comment
+ 2))
+ assert_equal(7, 5 + ( # comment
+ # comment
+ 2))
+
var s = (
'one'
..
@@ -2542,7 +2550,7 @@
)
assert_equal('onetwo', s)
END
- CheckScriptSuccess(lines)
+ CheckDefAndScriptSuccess(lines)
enddef
def Test_expr7_negate_add()
diff --git a/src/version.c b/src/version.c
index cfc9290..48ba60f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2349,
+/**/
2348,
/**/
2347,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index e25a36b..b0b5973 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3554,8 +3554,10 @@
compile_parenthesis(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
{
int ret;
+ char_u *p = *arg + 1;
- *arg = skipwhite(*arg + 1);
+ if (may_get_next_line_error(p, arg, cctx) == FAIL)
+ return FAIL;
if (ppconst->pp_used <= PPSIZE - 10)
{
ret = compile_expr1(arg, cctx, ppconst);