summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-07-23 19:06:23 +0200
committerBram Moolenaar <Bram@vim.org>2020-07-23 19:06:23 +0200
commit637cd7d1c9fa0ee47951ccdc310a388cb7ecfada (patch)
treebb0b8c23baf8d9b2737debc0c769d0f070c4472d
parent6c4bfe4b31e8c5d3c4809536ab6e4835d50f0f67 (diff)
patch 8.2.1283: Vim9: error for misplaced -> lacks argumentv8.2.1283
Problem: Vim9: error for misplaced -> lacks argument. Solution: Use the pointer before it was advanced.
-rw-r--r--src/testdir/test_vim9_expr.vim2
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index b0a83f49ab..d7072f34b9 100644
--- 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:')
diff --git a/src/version.c b/src/version.c
index 4ef305162e..ab410712a5 100644
--- 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,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 0fe0b16ddb..3be8733eaf 100644
--- 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] == ':')