patch 8.2.4332: Vim9: incomplete test for existing script variable in block
Problem: Vim9: incomplete test for existing script variable in block.
Solution: Add a couple more tests. Fix uncovered problem.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index e68cbcf..46e562d 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1057,6 +1057,43 @@
END
v9.CheckScriptSuccess(lines)
+ # with another variable in another block
+ lines =<< trim END
+ vim9script
+ if true
+ var name = 'piet'
+ # define a function so that the variable isn't cleared
+ def GetItem(): string
+ return item
+ enddef
+ endif
+ if true
+ var name = 'peter'
+ def FuncOne(name: string)
+ echo name
+ enddef
+ endif
+ END
+ v9.CheckScriptFailure(lines, 'E1168:')
+
+ # only variable in another block is OK
+ lines =<< trim END
+ vim9script
+ if true
+ var name = 'piet'
+ # define a function so that the variable isn't cleared
+ def GetItem(): string
+ return item
+ enddef
+ endif
+ if true
+ def FuncOne(name: string)
+ echo name
+ enddef
+ endif
+ END
+ v9.CheckScriptSuccess(lines)
+
# argument name declared later is only found when compiling
lines =<< trim END
vim9script