summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-01-14 20:35:49 +0100
committerBram Moolenaar <Bram@vim.org>2021-01-14 20:35:49 +0100
commit2415669348c455df0d1b9bf55b17a06d2f990c19 (patch)
tree0f17d2160462712e8766b589157b6bb6314d78aa
parentfadd55bd633b3b84d41a691e953f569bb6c21689 (diff)
downloadvim-git-2415669348c455df0d1b9bf55b17a06d2f990c19.tar.gz
patch 8.2.2349: Vim9: cannot handle line break after parenthesis at line endv8.2.2349
Problem: Vim9: cannot handle line break after parenthesis at line end. Solution: Skip over line break. (closes #7677)
-rw-r--r--src/testdir/test_vim9_expr.vim32
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c4
3 files changed, 25 insertions, 13 deletions
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 50537c858..a45d0eae6 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2523,18 +2523,26 @@ enddef
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 @@ def Test_expr7_parens_vim9script()
)
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 cfc929073..48ba60f2f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
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 e25a36b75..b0b5973dd 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3554,8 +3554,10 @@ compile_leader(cctx_T *cctx, int numeric_only, char_u *start, char_u **end)
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);