patch 8.2.1778: Vim9: returning from a partial call clears outer context
Problem: Vim9: returning from a partial call clears outer context, causing
a crash.
Solution: Put the outer context in the stack frame. (closes #7044)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index c9f9027..eec5af6 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1384,6 +1384,21 @@
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()