summaryrefslogtreecommitdiff
path: root/src/testdir/test_vim9_func.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-07-31 22:05:04 +0200
committerBram Moolenaar <Bram@vim.org>2020-07-31 22:05:04 +0200
commit38ddf333f6b2806b0ea2dd052ee1cd50dd7f4525 (patch)
tree5174c1e94e06de25435c40113f6d793eb97659c7 /src/testdir/test_vim9_func.vim
parent4d4d1cd5c8b61ef0296bd6190ca2a0b2d6d96ba7 (diff)
downloadvim-git-38ddf333f6b2806b0ea2dd052ee1cd50dd7f4525.tar.gz
patch 8.2.1329: Vim9: cannot define global function inside :def functionv8.2.1329
Problem: Vim9: cannot define global function inside :def function. Solution: Assign to global variable instead of local. (closes #6584)
Diffstat (limited to 'src/testdir/test_vim9_func.vim')
-rw-r--r--src/testdir/test_vim9_func.vim22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 2546f1369..dae64429d 100644
--- 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'))