changeset 21465:b5d4ab124782 v8.2.1283

patch 8.2.1283: Vim9: error for misplaced -> lacks argument Commit: https://github.com/vim/vim/commit/637cd7d1c9fa0ee47951ccdc310a388cb7ecfada Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jul 23 19:06:23 2020 +0200 patch 8.2.1283: Vim9: error for misplaced -> lacks argument Problem: Vim9: error for misplaced -> lacks argument. Solution: Use the pointer before it was advanced.
author Bram Moolenaar <Bram@vim.org>
date Thu, 23 Jul 2020 19:15:03 +0200
parents a6873b0067e5
children f5f1759ddcf4
files src/testdir/test_vim9_expr.vim src/version.c src/vim9compile.c
diffstat 3 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1532,7 +1532,7 @@ func Test_expr7_fails()
 
   call CheckDefFailure(["let x = ''", "let y = x.memb"], 'E715:')
 
-  call CheckDefFailure(["'yes'->", "Echo()"], 'E488:')
+  call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->')
 
   call CheckDefExecFailure(["[1, 2->len()"], 'E697:')
   call CheckDefExecFailure(["#{a: 1->len()"], 'E488:')
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1283,
+/**/
     1282,
 /**/
     1281,
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3761,6 +3761,8 @@ compile_subscript(
 	}
 	else if (*p == '-' && p[1] == '>')
 	{
+	    char_u *pstart = p;
+
 	    if (generate_ppconst(cctx, ppconst) == FAIL)
 		return FAIL;
 
@@ -3786,7 +3788,7 @@ compile_subscript(
 		p = *arg;
 		if (!eval_isnamec1(*p))
 		{
-		    semsg(_(e_trailing_arg), p);
+		    semsg(_(e_trailing_arg), pstart);
 		    return FAIL;
 		}
 		if (ASCII_ISALPHA(*p) && p[1] == ':')