mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 19:25:11 -07:00
af23d17388
The new oldtest directory is in test/old/testdir. The reason for this is that many tests have hardcoded the parent directory name to be 'testdir'.
64 lines
1.2 KiB
VimL
64 lines
1.2 KiB
VimL
"Tests for nested functions
|
|
"
|
|
func NestedFunc()
|
|
func! Func1()
|
|
let g:text .= 'Func1 '
|
|
endfunc
|
|
call Func1()
|
|
func! s:func2()
|
|
let g:text .= 's:func2 '
|
|
endfunc
|
|
call s:func2()
|
|
func! s:_func3()
|
|
let g:text .= 's:_func3 '
|
|
endfunc
|
|
call s:_func3()
|
|
let fn = 'Func4'
|
|
func! {fn}()
|
|
let g:text .= 'Func4 '
|
|
endfunc
|
|
call {fn}()
|
|
let fn = 'func5'
|
|
func! s:{fn}()
|
|
let g:text .= 's:func5'
|
|
endfunc
|
|
call s:{fn}()
|
|
endfunc
|
|
|
|
func Test_nested_functions()
|
|
let g:text = ''
|
|
call NestedFunc()
|
|
call assert_equal('Func1 s:func2 s:_func3 Func4 s:func5', g:text)
|
|
endfunction
|
|
|
|
func Test_nested_argument()
|
|
func g:X()
|
|
let g:Y = function('sort')
|
|
endfunc
|
|
let g:Y = function('sort')
|
|
echo g:Y([], g:X())
|
|
delfunc g:X
|
|
unlet g:Y
|
|
endfunc
|
|
|
|
func Recurse(count)
|
|
if a:count > 0
|
|
call Recurse(a:count - 1)
|
|
endif
|
|
endfunc
|
|
|
|
func Test_max_nesting()
|
|
let call_depth_here = 2
|
|
let ex_depth_here = 5
|
|
set mfd&
|
|
|
|
call Recurse(99 - call_depth_here)
|
|
call assert_fails('call Recurse(' . (100 - call_depth_here) . ')', 'E132:')
|
|
|
|
set mfd=210
|
|
call Recurse(209 - ex_depth_here)
|
|
call assert_fails('call Recurse(' . (210 - ex_depth_here) . ')', 'E169:')
|
|
|
|
set mfd&
|
|
endfunc
|