From: Bram Moolenaar Date: Sat, 27 Jun 2020 18:46:29 +0000 (+0200) Subject: patch 8.2.1073: Vim9: no line break allowed in () expression X-Git-Tag: v8.2.1073 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a4981b93642b5b62018cd8150b3fb0dfa2417d4;p=vim patch 8.2.1073: Vim9: no line break allowed in () expression Problem: Vim9: no line break allowed in () expression. Solution: Skip a line break. --- diff --git a/src/eval.c b/src/eval.c index e1a33df60..86d81fa09 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2453,6 +2453,9 @@ eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg) if (op == '.' && *(*arg + 1) == '.') // .. string concatenation ++*arg; *arg = skipwhite(*arg + 1); + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); if (eval6(arg, &var2, evalarg, op == '.') == FAIL) { clear_tv(rettv); @@ -2890,8 +2893,18 @@ eval7( * nested expression: (expression). */ case '(': { + int getnext; + *arg = skipwhite(*arg + 1); + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); + ret = eval1(arg, rettv, evalarg); // recursive! + + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); if (**arg == ')') ++*arg; else if (ret == OK) diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 0a883f930..0d2a2b0bf 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -1137,6 +1137,19 @@ def Test_expr7_parens() assert_equal(true, !+-+0) enddef +def Test_expr7_parens_vim9script() + let lines =<< trim END + vim9script + let s = ( + 'one' + .. + 'two' + ) + assert_equal('onetwo', s) + END + CheckScriptSuccess(lines) +enddef + def Test_expr7_negate() assert_equal(-99, -99) assert_equal(99, --99) diff --git a/src/version.c b/src/version.c index 51a93365f..4184a69f3 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1073, /**/ 1072, /**/