Mercurial > vim
diff src/testdir/test_vim9_func.vim @ 22236:3d0632b260fd v8.2.1667
patch 8.2.1667: local function name cannot shadow a global function name
Commit: https://github.com/vim/vim/commit/0f769815c82bf93812842e1ad56fcc52c10ff3e5
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 12 18:32:34 2020 +0200
patch 8.2.1667: local function name cannot shadow a global function name
Problem: Local function name cannot shadow a global function name.
Solution: Ignore global functions when checking a script-local or scoped
function name. (closes #6926)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 12 Sep 2020 18:45:04 +0200 |
parents | 7b9e8fd7ea5b |
children | e0a4d029cb87 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -232,6 +232,36 @@ def Test_global_local_function() CheckScriptFailure(lines, 'E117:') enddef +def Test_local_function_shadows_global() + let lines =<< trim END + vim9script + def g:Gfunc(): string + return 'global' + enddef + def AnotherFunc(): number + let Gfunc = function('len') + return Gfunc('testing') + enddef + g:Gfunc()->assert_equal('global') + AnotherFunc()->assert_equal(7) + delfunc g:Gfunc + END + CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + def g:Func(): string + return 'global' + enddef + def AnotherFunc() + g:Func = function('len') + enddef + AnotherFunc() + END + CheckScriptFailure(lines, 'E705:') + delfunc g:Func +enddef + func TakesOneArg(arg) echo a:arg endfunc