Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 20347:0e1dfff4f294 v8.2.0729
patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Commit: https://github.com/vim/vim/commit/89483d40438830fb9e74a5ec6c92d2470b05e4c2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 10 15:24:44 2020 +0200
patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Problem: Vim9: When reloading a script variables are not cleared.
Solution: When sourcing a script again clear all script-local variables.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 10 May 2020 15:30:03 +0200 |
parents | ff4ae3f09307 |
children | e29b2ec8d4d2 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -610,7 +610,6 @@ def Test_vim9_import_export() let import_star_lines =<< trim END vim9script import * from './Xexport.vim' - g:imported = exported END writefile(import_star_lines, 'Ximport.vim') assert_fails('source Ximport.vim', 'E1045:') @@ -807,6 +806,28 @@ def Test_vim9script_reload_delfunc() delete('Xreloaded.vim') enddef +def Test_vim9script_reload_delvar() + # write the script with a script-local variable + let lines =<< trim END + vim9script + let var = 'string' + END + writefile(lines, 'XreloadVar.vim') + source XreloadVar.vim + + # now write the script using the same variable locally - works + lines =<< trim END + vim9script + def Func() + let var = 'string' + enddef + END + writefile(lines, 'XreloadVar.vim') + source XreloadVar.vim + + delete('XreloadVar.vim') +enddef + def Test_import_absolute() let import_lines = [ 'vim9script', @@ -862,8 +883,7 @@ def Test_import_rtp() unlet g:imported_rtp delete('Ximport_rtp.vim') - delete('import/Xexport_rtp.vim') - delete('import', 'd') + delete('import', 'rf') enddef def Test_fixed_size_list()