mirror of
https://github.com/neovim/neovim.git
synced 2025-09-15 15:58:17 +00:00
vim-patch:8.1.1828: not strict enough checking syntax of method invocation
Problem: Not strict enough checking syntax of method invocation.
Solution: Check there is no white space inside ->method(.
5184132ec0
This commit is contained in:
@@ -1053,12 +1053,19 @@ For methods that are also available as global functions this is the same as: >
|
|||||||
name(expr8 [, args])
|
name(expr8 [, args])
|
||||||
There can also be methods specifically for the type of "expr8".
|
There can also be methods specifically for the type of "expr8".
|
||||||
|
|
||||||
"->name(" must not contain white space. There can be white space before "->"
|
This allows for chaining, passing the value that one method returns to the
|
||||||
and after the "(".
|
next method: >
|
||||||
|
|
||||||
This allows for chaining, using the type that the method returns: >
|
|
||||||
mylist->filter(filterexpr)->map(mapexpr)->sort()->join()
|
mylist->filter(filterexpr)->map(mapexpr)->sort()->join()
|
||||||
<
|
<
|
||||||
|
*E274*
|
||||||
|
"->name(" must not contain white space. There can be white space before the
|
||||||
|
"->" and after the "(", thus you can split the lines like this: >
|
||||||
|
mylist
|
||||||
|
\ ->filter(filterexpr)
|
||||||
|
\ ->map(mapexpr)
|
||||||
|
\ ->sort()
|
||||||
|
\ ->join()
|
||||||
|
<
|
||||||
|
|
||||||
*expr9*
|
*expr9*
|
||||||
number
|
number
|
||||||
|
@@ -4134,6 +4134,11 @@ static int eval_method(char_u **const arg, typval_T *const rettv,
|
|||||||
EMSG2(_(e_missingparen), name);
|
EMSG2(_(e_missingparen), name);
|
||||||
}
|
}
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
|
} else if (ascii_iswhite((*arg)[-1])) {
|
||||||
|
if (verbose) {
|
||||||
|
EMSG(_("E274: No white space allowed before parenthesis"));
|
||||||
|
}
|
||||||
|
ret = FAIL;
|
||||||
} else {
|
} else {
|
||||||
ret = eval_func(arg, name, len, rettv, evaluate, &base);
|
ret = eval_func(arg, name, len, rettv, evaluate, &base);
|
||||||
}
|
}
|
||||||
|
@@ -118,4 +118,14 @@ func Test_method_funcref()
|
|||||||
delfunc Concat
|
delfunc Concat
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_method_syntax()
|
||||||
|
eval [1, 2, 3] ->sort( )
|
||||||
|
eval [1, 2, 3]
|
||||||
|
\ ->sort(
|
||||||
|
\ )
|
||||||
|
call assert_fails('eval [1, 2, 3]-> sort()', 'E260:')
|
||||||
|
call assert_fails('eval [1, 2, 3]->sort ()', 'E274:')
|
||||||
|
call assert_fails('eval [1, 2, 3]-> sort ()', 'E260:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
Reference in New Issue
Block a user