0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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)
This commit is contained in:
Bram Moolenaar
2021-05-15 20:06:58 +02:00
parent 30e3de21fc
commit 0820f4de58
3 changed files with 14 additions and 3 deletions

View File

@@ -5916,10 +5916,18 @@ handle_subscript(
} }
else if (p[0] == '-' && p[1] == '>') 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 (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)() // expr->{lambda}() or expr->(lambda)()
ret = eval_lambda(arg, rettv, evalarg, verbose); ret = eval_lambda(arg, rettv, evalarg, verbose);
else else

View File

@@ -131,11 +131,12 @@ func Test_method_syntax()
eval [1, 2, 3] eval [1, 2, 3]
\ ->sort( \ ->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:')
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 endfunc
func Test_method_lambda() func Test_method_lambda()

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2855,
/**/ /**/
2854, 2854,
/**/ /**/