comparison src/testdir/test_vim9_func.vim @ 21558:1c4d4aa22b37 v8.2.1329

patch 8.2.1329: Vim9: cannot define global function inside :def function Commit: https://github.com/vim/vim/commit/38ddf333f6b2806b0ea2dd052ee1cd50dd7f4525 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jul 31 22:05:04 2020 +0200 patch 8.2.1329: Vim9: cannot define global function inside :def function Problem: Vim9: cannot define global function inside :def function. Solution: Assign to global variable instead of local. (closes https://github.com/vim/vim/issues/6584)
author Bram Moolenaar <Bram@vim.org>
date Fri, 31 Jul 2020 22:15:04 +0200
parents 6c67c86a202a
children 30a997217524
comparison
equal deleted inserted replaced
21557:00c9f8522652 21558:1c4d4aa22b37
131 CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') 131 CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:')
132 132
133 CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:') 133 CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:')
134 enddef 134 enddef
135 135
136 def Test_nested_global_function()
137 let lines =<< trim END
138 vim9script
139 def Outer()
140 def g:Inner(): string
141 return 'inner'
142 enddef
143 enddef
144 disass Outer
145 Outer()
146 assert_equal('inner', g:Inner())
147 delfunc g:Inner
148 Outer()
149 assert_equal('inner', g:Inner())
150 delfunc g:Inner
151 Outer()
152 assert_equal('inner', g:Inner())
153 delfunc g:Inner
154 END
155 CheckScriptSuccess(lines)
156 enddef
157
136 func Test_call_default_args_from_func() 158 func Test_call_default_args_from_func()
137 call assert_equal('string', MyDefaultArgs()) 159 call assert_equal('string', MyDefaultArgs())
138 call assert_equal('one', MyDefaultArgs('one')) 160 call assert_equal('one', MyDefaultArgs('one'))
139 call assert_fails('call MyDefaultArgs("one", "two")', 'E118:') 161 call assert_fails('call MyDefaultArgs("one", "two")', 'E118:')
140 endfunc 162 endfunc