summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_lambda.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-01 22:49:22 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-01 22:49:22 +0200
commitbc7ce675b2d1c9fb58c067eff3edd59abc30aba4 (patch)
treedf3fc4f3d1467680240f95d5cf51d65eae88cb86 /src/testdir/test_lambda.vim
parent8dd3a43d75550e9b5736066124c97697564f769e (diff)
patch 7.4.2143v7.4.2143
Problem: A funccal is garbage collected while it can still be used. Solution: Set copyID in all referenced functions. Do not list lambda functions with ":function".
Diffstat (limited to 'src/testdir/test_lambda.vim')
-rw-r--r--src/testdir/test_lambda.vim14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim
index 1df1f1c3e3..901d535e80 100644
--- a/src/testdir/test_lambda.vim
+++ b/src/testdir/test_lambda.vim
@@ -270,3 +270,17 @@ func Test_closure_refcount()
delfunc LambdaFoo
delfunc LambdaBar
endfunc
+
+func Test_named_function_closure()
+ func! Afoo()
+ let x = 14
+ func! s:Abar() closure
+ return x
+ endfunc
+ call assert_equal(14, s:Abar())
+ endfunc
+ call Afoo()
+ call assert_equal(14, s:Abar())
+ call test_garbagecollect_now()
+ call assert_equal(14, s:Abar())
+endfunc