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(.
diff --git a/src/eval.c b/src/eval.c
index caac2a1..0f9c95f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4862,6 +4862,12 @@
semsg(_(e_missingparen), name);
ret = FAIL;
}
+ else if (VIM_ISWHITE((*arg)[-1]))
+ {
+ if (verbose)
+ semsg(_("E274: No white space allowed before parenthesis"));
+ ret = FAIL;
+ }
else
ret = eval_func(arg, name, len, rettv, evaluate, &base);
}
diff --git a/src/testdir/test_method.vim b/src/testdir/test_method.vim
index 02c69f2..7780f08 100644
--- a/src/testdir/test_method.vim
+++ b/src/testdir/test_method.vim
@@ -112,3 +112,13 @@
delfunc Concat
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
diff --git a/src/version.c b/src/version.c
index 4f8f152..9c6eccf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1828,
+/**/
1827,
/**/
1826,