Mercurial > vim
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 |