summaryrefslogtreecommitdiff
path: root/src/testdir/test_vim9_func.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-02 17:52:42 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-02 17:52:42 +0200
commitbf67ea1af05cbb30cd8f0b665fb567c0dca79796 (patch)
treeafd0a33b60c2fe9e3ca8756110d6b9e6940073ff /src/testdir/test_vim9_func.vim
parentd58a662f44dc11475f4cf5922a948635da934cc4 (diff)
downloadvim-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.vim12
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