diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-05-02 17:52:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-05-02 17:52:42 +0200 |
commit | bf67ea1af05cbb30cd8f0b665fb567c0dca79796 (patch) | |
tree | afd0a33b60c2fe9e3ca8756110d6b9e6940073ff /src/testdir/test_vim9_func.vim | |
parent | d58a662f44dc11475f4cf5922a948635da934cc4 (diff) | |
download | vim-git-bf67ea1af05cbb30cd8f0b665fb567c0dca79796.tar.gz |
patch 8.2.0679: Vim9: incomplete support for closuresv8.2.0679
Problem: Vim9: incomplete support for closures.
Solution: At the end of a function copy arguments and local variables if
they are still used by a referenced closure.
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r-- | src/testdir/test_vim9_func.vim | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index a317d8f58..0fd28924a 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -650,4 +650,16 @@ def Test_closure_simple() assert_equal('some more', RefFunc({s -> local .. s})) enddef +def MakeRef() + let local = 'some ' + g:Ref = {s -> local .. s} +enddef + +def Test_closure_ref_after_return() + MakeRef() + assert_equal('some thing', g:Ref('thing')) + unlet g:Ref +enddef + + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |