diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-01-14 20:35:49 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-01-14 20:35:49 +0100 |
commit | 2415669348c455df0d1b9bf55b17a06d2f990c19 (patch) | |
tree | 0f17d2160462712e8766b589157b6bb6314d78aa | |
parent | fadd55bd633b3b84d41a691e953f569bb6c21689 (diff) | |
download | vim-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.vim | 32 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 4 |
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); |