Mercurial > vim
diff src/testdir/test_vim9_import.vim @ 27348:9a9c34c84cd4 v8.2.4202
patch 8.2.4202: Vim9: cannot export function that exists globally
Commit: https://github.com/vim/vim/commit/acc4b5648b49ec13c4f35ee0bf552eda71b0c372
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 24 13:54:45 2022 +0000
patch 8.2.4202: Vim9: cannot export function that exists globally
Problem: Vim9: cannot export function that exists globally.
Solution: When checking if a function already exists only check for
script-local functions. (closes #9615)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 24 Jan 2022 15:00:04 +0100 |
parents | 44e82999b4e1 |
children | 2ca6dd1f62af |
line wrap: on
line diff
--- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -965,6 +965,37 @@ def Run_Test_import_in_spellsuggest_expr set nospell spellsuggest& verbose=0 enddef +def Test_export_shadows_global_function() + mkdir('Xdir/autoload', 'p') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Xdir' + + var lines =<< trim END + vim9script + export def Shadow(): string + return 'Shadow()' + enddef + END + writefile(lines, 'Xdir/autoload/shadow.vim') + + lines =<< trim END + vim9script + + def g:Shadow(): string + return 'global' + enddef + + import autoload 'shadow.vim' + assert_equal('Shadow()', shadow.Shadow()) + END + CheckScriptSuccess(lines) + + delfunc g:Shadow + bwipe! + delete('Xdir', 'rf') + &rtp = save_rtp +enddef + def Test_export_fails() CheckScriptFailure(['export var some = 123'], 'E1042:') CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')