From: Bram Moolenaar Date: Fri, 29 Jul 2016 20:50:35 +0000 (+0200) Subject: patch 7.4.2121 X-Git-Tag: v7.4.2121 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9532fe7fbe1b14531931e83bd9f8054efdcf7509;p=vim 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 index 53783af74..f66584242 100644 --- 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 index 9eb34e434..511873807 100644 --- 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 index 7e8ca166e..4af1468a7 100644 --- 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 @@ -758,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2121, /**/ 2120, /**/