]> granicus.if.org Git - vim/commitdiff
patch 8.2.2053: Vim9: lamba doesn't accept argument types v8.2.2053
authorBram Moolenaar <Bram@vim.org>
Wed, 25 Nov 2020 20:30:11 +0000 (21:30 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 25 Nov 2020 20:30:11 +0000 (21:30 +0100)
Problem:    Vim9: lamba doesn't accept argument types.
Solution:   Optionally accept argument types at the script level.

src/eval.c
src/testdir/test_vim9_expr.vim
src/version.c

index 6fea436054e173261842b0fd99a97051d0b981b0..f23d721df2618dace7e3cab932437fcc8c6562ec 100644 (file)
@@ -3266,7 +3266,7 @@ eval7(
      * Lambda: {arg, arg -> expr}
      * Dictionary: {'key': val, 'key': val}
      */
-    case '{':  ret = get_lambda_tv(arg, rettv, FALSE, evalarg);
+    case '{':  ret = get_lambda_tv(arg, rettv, in_vim9script(), evalarg);
                if (ret == NOTDONE)
                    ret = eval_dict(arg, rettv, evalarg, FALSE);
                break;
index 02f8c0ad050c81f8041f9902ae7c9fa2c83a14c1..57307a27edd70892868cf315baabb5088ccbc8e8 100644 (file)
@@ -1828,6 +1828,9 @@ def Test_expr7_lambda()
 
       assert_equal(false, LambdaUsingArg(0)())
       assert_equal(true, LambdaUsingArg(1)())
+
+      var res = map([1, 2, 3], {i: number, v: number -> i + v})
+      assert_equal([1, 3, 5], res)
   END
   CheckDefAndScriptSuccess(lines)
 
index c653cdc84f0f4e10bd2f8c5bb959f53a709963d1..bd8abac7a0102bab0a47f6ef3c331fde380b36df 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2053,
 /**/
     2052,
 /**/