Mercurial > vim
diff 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 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -133,6 +133,28 @@ def Test_nested_function() CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:') enddef +def Test_nested_global_function() + let lines =<< trim END + vim9script + def Outer() + def g:Inner(): string + return 'inner' + enddef + enddef + disass Outer + Outer() + assert_equal('inner', g:Inner()) + delfunc g:Inner + Outer() + assert_equal('inner', g:Inner()) + delfunc g:Inner + Outer() + assert_equal('inner', g:Inner()) + delfunc g:Inner + END + CheckScriptSuccess(lines) +enddef + func Test_call_default_args_from_func() call assert_equal('string', MyDefaultArgs()) call assert_equal('one', MyDefaultArgs('one'))