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 #6584)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 2546f13..dae6442 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -133,6 +133,28 @@
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'))