patch 8.2.2642: Vim9: no clear error for wrong inline function
Problem: Vim9: no clear error for wrong inline function.
Solution: Check for something following the "{".
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 6b9b54a..c181b20 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1963,6 +1963,11 @@
assert_equal(['no', 'yes', 'no'], dll)
END
CheckDefAndScriptSuccess(lines)
+
+ lines =<< trim END
+ map([1, 2], (k, v) => { redrawt })
+ END
+ CheckDefAndScriptFailure(lines, 'E488')
enddef
def NewLambdaWithComments(): func
diff --git a/src/userfunc.c b/src/userfunc.c
index a53c476..c9c7bc7 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -954,10 +954,15 @@
int lnum_save = -1;
linenr_T sourcing_lnum_top = SOURCING_LNUM;
+ if (!ends_excmd2(*arg, skipwhite(*arg + 1)))
+ {
+ semsg(_(e_trailing_arg), *arg + 1);
+ return FAIL;
+ }
+
CLEAR_FIELD(eap);
eap.cmdidx = CMD_block;
eap.forceit = FALSE;
- eap.arg = *arg + 1;
eap.cmdlinep = &cmdline;
eap.skip = !evaluate;
if (evalarg->eval_cctx != NULL)
diff --git a/src/version.c b/src/version.c
index 3a5365a..fbe38b8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2642,
+/**/
2641,
/**/
2640,