0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

patch 8.2.1824: Vim9: variables at the script level escape their scope

Problem:    Vim9: variables at the script level escape their scope.
Solution:   When leaving a scope remove variables declared in it.
This commit is contained in:
Bram Moolenaar
2020-10-10 19:07:09 +02:00
parent 28f224b2c1
commit fcdc5d83fb
6 changed files with 112 additions and 14 deletions

View File

@@ -2685,6 +2685,56 @@ def Run_Test_define_func_at_command_line()
delete('Xdidcmd')
enddef
def Test_script_var_scope()
var lines =<< trim END
vim9script
if true
if true
var one = 'one'
echo one
endif
echo one
endif
END
CheckScriptFailure(lines, 'E121:', 7)
lines =<< trim END
vim9script
if true
if false
var one = 'one'
echo one
else
var one = 'one'
echo one
endif
echo one
endif
END
CheckScriptFailure(lines, 'E121:', 10)
lines =<< trim END
vim9script
while true
var one = 'one'
echo one
break
endwhile
echo one
END
CheckScriptFailure(lines, 'E121:', 7)
lines =<< trim END
vim9script
for i in range(1)
var one = 'one'
echo one
endfor
echo one
END
CheckScriptFailure(lines, 'E121:', 6)
enddef
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new