From: Bram Moolenaar Date: Mon, 22 Mar 2021 17:22:30 +0000 (+0100) Subject: patch 8.2.2642: Vim9: no clear error for wrong inline function X-Git-Tag: v8.2.2642 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e98f60a5912d30db289231aed7d3a1d74beaae20;p=vim 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 6b9b54a58..c181b203f 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -1963,6 +1963,11 @@ def Test_expr7_lambda_block() 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 a53c4769c..c9c7bc791 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -954,10 +954,15 @@ lambda_function_body( 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 3a5365a86..fbe38b806 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2642, /**/ 2641, /**/