comparison src/testdir/test_vim9_func.vim @ 21566:1e3e5058041c v8.2.1333

patch 8.2.1333: Vim9: memory leak when using nested global function Commit: https://github.com/vim/vim/commit/af8edbb8dc551aaf2105a4d77b3d8495da239ef0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 1 00:03:09 2020 +0200 patch 8.2.1333: Vim9: memory leak when using nested global function Problem: Vim9: memory leak when using nested global function. Solution: Swap from and to when copying the lines.
author Bram Moolenaar <Bram@vim.org>
date Sat, 01 Aug 2020 00:15:04 +0200
parents 30a997217524
children 5470c36ed7e6
comparison
equal deleted inserted replaced
21565:a0fbaf68d30e 21566:1e3e5058041c
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 func Test_call_default_args_from_func()
137 call assert_equal('string', MyDefaultArgs())
138 call assert_equal('one', MyDefaultArgs('one'))
139 call assert_fails('call MyDefaultArgs("one", "two")', 'E118:')
140 endfunc
141
136 def Test_nested_global_function() 142 def Test_nested_global_function()
137 let lines =<< trim END 143 let lines =<< trim END
138 vim9script 144 vim9script
139 def Outer() 145 def Outer()
140 def g:Inner(): string 146 def g:Inner(): string
141 return 'inner' 147 return 'inner'
142 enddef 148 enddef
143 enddef 149 enddef
144 # Outer() 150 defcompile
145 # assert_equal('inner', g:Inner()) 151 Outer()
146 # delfunc g:Inner 152 assert_equal('inner', g:Inner())
147 # Outer() 153 delfunc g:Inner
148 # assert_equal('inner', g:Inner()) 154 Outer()
149 # delfunc g:Inner 155 assert_equal('inner', g:Inner())
150 # Outer() 156 delfunc g:Inner
151 # assert_equal('inner', g:Inner()) 157 Outer()
152 # delfunc g:Inner 158 assert_equal('inner', g:Inner())
159 delfunc g:Inner
153 END 160 END
154 CheckScriptSuccess(lines) 161 CheckScriptSuccess(lines)
155 enddef 162 enddef
156
157 func Test_call_default_args_from_func()
158 call assert_equal('string', MyDefaultArgs())
159 call assert_equal('one', MyDefaultArgs('one'))
160 call assert_fails('call MyDefaultArgs("one", "two")', 'E118:')
161 endfunc
162 163
163 func TakesOneArg(arg) 164 func TakesOneArg(arg)
164 echo a:arg 165 echo a:arg
165 endfunc 166 endfunc
166 167