From: Bram Moolenaar Date: Sat, 15 May 2021 18:06:58 +0000 (+0200) Subject: patch 8.2.2855: white space after "->" does not give E274 X-Git-Tag: v8.2.2855 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0820f4de5872bfbdc25bf6cba6ec5646dbcec156;p=vim patch 8.2.2855: white space after "->" does not give E274 Problem: White space after "->" does not give E274. Solution: Do not skip white space in legacy script. (closes #8212) --- diff --git a/src/eval.c b/src/eval.c index 0d4f5fe59..97c5f78df 100644 --- a/src/eval.c +++ b/src/eval.c @@ -5916,10 +5916,18 @@ handle_subscript( } else if (p[0] == '-' && p[1] == '>') { - *arg = skipwhite(p + 2); + if (in_vim9script()) + *arg = skipwhite(p + 2); + else + *arg = p + 2; if (ret == OK) { - if ((**arg == '{' && !in_vim9script()) || **arg == '(') + if (VIM_ISWHITE(**arg)) + { + emsg(_(e_nowhitespace)); + ret = FAIL; + } + else if ((**arg == '{' && !in_vim9script()) || **arg == '(') // expr->{lambda}() or expr->(lambda)() ret = eval_lambda(arg, rettv, evalarg, verbose); else diff --git a/src/testdir/test_method.vim b/src/testdir/test_method.vim index 262c08c79..6b62d3620 100644 --- a/src/testdir/test_method.vim +++ b/src/testdir/test_method.vim @@ -131,11 +131,12 @@ func Test_method_syntax() eval [1, 2, 3] \ ->sort( \ ) - eval [1, 2, 3]-> sort() + eval [1, 2, 3]->sort() call assert_fails('eval [1, 2, 3]->sort ()', 'E274:') call assert_fails('eval [1, 2, 3] ->sort ()', 'E274:') call assert_fails('eval [1, 2, 3]-> sort ()', 'E274:') + call assert_fails('eval [1, 2, 3]-> sort()', 'E274:') endfunc func Test_method_lambda() diff --git a/src/version.c b/src/version.c index 7635c2f47..1aef3c7d3 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2855, /**/ 2854, /**/