diff src/eval.c @ 24632:9e72076e31f8 v8.2.2855

patch 8.2.2855: white space after "->" does not give E274 Commit: https://github.com/vim/vim/commit/0820f4de5872bfbdc25bf6cba6ec5646dbcec156 Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 15 20:06:58 2021 +0200 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 https://github.com/vim/vim/issues/8212)
author Bram Moolenaar <Bram@vim.org>
date Sat, 15 May 2021 20:15:03 +0200
parents 4aebea72c397
children 3876d9629ebd
line wrap: on
line diff
--- 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