patch 8.2.4016: Vim9: incorrect error for argument that is shadowing var
Problem: Vim9: incorrect error for argument that is shadowing var.
Solution: Ignore variable that is not in block where the function was
defined.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 025edd5..9e420ad 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -933,6 +933,21 @@
delfunc g:Func
END
CheckScriptSuccess(lines)
+
+ # This does not shadow "i" which is visible only inside the for loop
+ lines =<< trim END
+ vim9script
+
+ def Foo(i: number)
+ echo i
+ enddef
+
+ for i in range(3)
+ # Foo() is compiled here
+ Foo(i)
+ endfor
+ END
+ CheckScriptSuccess(lines)
enddef
func TakesOneArg(arg)