mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Problem: Vim9: crash when calling a closure from a builtin function. Solution: Use the current execution context. (closes #6441)
This commit is contained in:
@@ -1019,5 +1019,24 @@ def Test_recursive_call()
|
||||
assert_equal(6765, Fibonacci(20))
|
||||
enddef
|
||||
|
||||
def TreeWalk(dir: string): list<any>
|
||||
return readdir(dir)->map({_, val ->
|
||||
fnamemodify(dir .. '/' .. val, ':p')->isdirectory()
|
||||
? {val : TreeWalk(dir .. '/' .. val)}
|
||||
: val
|
||||
})
|
||||
enddef
|
||||
|
||||
def Test_closure_in_map()
|
||||
mkdir('XclosureDir/tdir', 'p')
|
||||
writefile(['111'], 'XclosureDir/file1')
|
||||
writefile(['222'], 'XclosureDir/file2')
|
||||
writefile(['333'], 'XclosureDir/tdir/file3')
|
||||
|
||||
assert_equal(['file1', 'file2', {'tdir': ['file3']}], TreeWalk('XclosureDir'))
|
||||
|
||||
delete('XclosureDir', 'rf')
|
||||
enddef
|
||||
|
||||
|
||||
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
|
||||
|
Reference in New Issue
Block a user