diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-10-01 13:01:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-10-01 13:01:34 +0200 |
commit | 5366e1aecfff4546df6af86cf98013f23ed5c3bd (patch) | |
tree | bb7d5a1c8452bcc7572828402b25232c3df75b2a /src/testdir/test_vim9_func.vim | |
parent | 55759b522814995af36803823d342d51d68c0b67 (diff) | |
download | vim-git-5366e1aecfff4546df6af86cf98013f23ed5c3bd.tar.gz |
patch 8.2.1778: Vim9: returning from a partial call clears outer contextv8.2.1778
Problem: Vim9: returning from a partial call clears outer context, causing
a crash.
Solution: Put the outer context in the stack frame. (closes #7044)
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r-- | src/testdir/test_vim9_func.vim | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index c9f902773..eec5af62f 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -1384,6 +1384,21 @@ def Test_nested_closure_fails() CheckScriptFailure(lines, 'E1012:') enddef +def Test_nested_lambda() + var lines =<< trim END + vim9script + def Func() + var x = 4 + var Lambda1 = {-> 7} + var Lambda2 = {-> [Lambda1(), x]} + var res = Lambda2() + assert_equal([7, 4], res) + enddef + Func() + END + CheckScriptSuccess(lines) +enddef + def Test_sort_return_type() var res: list<number> res = [1, 2, 3]->sort() |