diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-08-01 22:49:22 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-08-01 22:49:22 +0200 |
commit | bc7ce675b2d1c9fb58c067eff3edd59abc30aba4 (patch) | |
tree | df3fc4f3d1467680240f95d5cf51d65eae88cb86 /src/testdir/test_lambda.vim | |
parent | 8dd3a43d75550e9b5736066124c97697564f769e (diff) | |
download | vim-git-bc7ce675b2d1c9fb58c067eff3edd59abc30aba4.tar.gz |
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.vim | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim index 1df1f1c3e..901d535e8 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 |