1*19a1669fSBram Moolenaar"Tests for nested functions
2*19a1669fSBram Moolenaar"
3*19a1669fSBram Moolenaarfunction! NestedFunc()
4*19a1669fSBram Moolenaar  fu! Func1()
5*19a1669fSBram Moolenaar    let g:text .= 'Func1 '
6*19a1669fSBram Moolenaar  endfunction
7*19a1669fSBram Moolenaar  call Func1()
8*19a1669fSBram Moolenaar  fu! s:func2()
9*19a1669fSBram Moolenaar    let g:text .= 's:func2 '
10*19a1669fSBram Moolenaar  endfunction
11*19a1669fSBram Moolenaar  call s:func2()
12*19a1669fSBram Moolenaar  fu! s:_func3()
13*19a1669fSBram Moolenaar    let g:text .= 's:_func3 '
14*19a1669fSBram Moolenaar  endfunction
15*19a1669fSBram Moolenaar  call s:_func3()
16*19a1669fSBram Moolenaar  let fn = 'Func4'
17*19a1669fSBram Moolenaar  fu! {fn}()
18*19a1669fSBram Moolenaar    let g:text .= 'Func4 '
19*19a1669fSBram Moolenaar  endfunction
20*19a1669fSBram Moolenaar  call {fn}()
21*19a1669fSBram Moolenaar  let fn = 'func5'
22*19a1669fSBram Moolenaar  fu! s:{fn}()
23*19a1669fSBram Moolenaar    let g:text .= 's:func5'
24*19a1669fSBram Moolenaar  endfunction
25*19a1669fSBram Moolenaar  call s:{fn}()
26*19a1669fSBram Moolenaarendfunction
27*19a1669fSBram Moolenaar
28*19a1669fSBram Moolenaarfunction! Test_nested_functions()
29*19a1669fSBram Moolenaar  let g:text = ''
30*19a1669fSBram Moolenaar  call NestedFunc()
31*19a1669fSBram Moolenaar  call assert_equal('Func1 s:func2 s:_func3 Func4 s:func5', g:text)
32*19a1669fSBram Moolenaarendfunction
33