summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-05-15 20:06:58 +0200
committerBram Moolenaar <Bram@vim.org>2021-05-15 20:06:58 +0200
commit0820f4de5872bfbdc25bf6cba6ec5646dbcec156 (patch)
tree1025fd74d4fc5c3266a4f9fe93ee61ef0f61aadb
parent30e3de21fc36153c5f7c9cf9db90bcc60dd67fb9 (diff)
patch 8.2.2855: white space after "->" does not give E274v8.2.2855
Problem: White space after "->" does not give E274. Solution: Do not skip white space in legacy script. (closes #8212)
-rw-r--r--src/eval.c12
-rw-r--r--src/testdir/test_method.vim3
-rw-r--r--src/version.c2
3 files changed, 14 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index 0d4f5fe59c..97c5f78dff 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 262c08c79b..6b62d36209 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 7635c2f470..1aef3c7d38 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2855,
+/**/
2854,
/**/
2853,