summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-29 22:50:35 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-29 22:50:35 +0200
commit9532fe7fbe1b14531931e83bd9f8054efdcf7509 (patch)
tree08ebc6f99eb5addae13e2ead7be4dda9fd03445b
parent10ce39a0d52272a3dfff2feb8c631529f29e6740 (diff)
downloadvim-git-9532fe7fbe1b14531931e83bd9f8054efdcf7509.tar.gz
patch 7.4.2121v7.4.2121
Problem: No easy way to check if lambda and closure are supported. Solution: Add the +lambda feature.
-rw-r--r--src/evalfunc.c1
-rw-r--r--src/testdir/test_lambda.vim4
-rw-r--r--src/version.c7
3 files changed, 12 insertions, 0 deletions
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
@@ -759,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2121,
+/**/
2120,
/**/
2119,