# HG changeset patch # User Christian Brabandt # Date 1469826006 -7200 # Node ID 4a7a88404076cd7e8ecc6b36839f2fb4a09b04c4 # Parent 75466263dfbde613bbde3db1d13fba85e3cd4fc8 commit https://github.com/vim/vim/commit/9532fe7fbe1b14531931e83bd9f8054efdcf7509 Author: Bram Moolenaar Date: Fri Jul 29 22:50:35 2016 +0200 patch 7.4.2121 Problem: No easy way to check if lambda and closure are supported. Solution: Add the +lambda feature. diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -5205,6 +5205,7 @@ f_has(typval_T *argvars, typval_T *rettv #ifdef FEAT_KEYMAP "keymap", #endif + "lambda", /* always with FEAT_EVAL, since 7.4.2120 with closure */ #ifdef FEAT_LANGMAP "langmap", #endif diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim --- a/src/testdir/test_lambda.vim +++ b/src/testdir/test_lambda.vim @@ -1,5 +1,9 @@ " Test for lambda and closure +function! Test_lambda_feature() + call assert_equal(1, has('lambda')) +endfunction + function! Test_lambda_with_filter() let s:x = 2 call assert_equal([2, 3], filter([1, 2, 3], {i, v -> v >= s:x})) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -304,6 +304,11 @@ static char *(features[]) = #else "-keymap", #endif +#ifdef FEAT_EVAL + "+lambda", +#else + "-lambda", +#endif #ifdef FEAT_LANGMAP "+langmap", #else @@ -759,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2121, +/**/ 2120, /**/ 2119,