patch 8.2.3782: Vim9: no error if a function shadows a script variable
Problem: Vim9: no error if a function shadows a script variable.
Solution: Check the function doesn't shadow a variable. (closes #9310)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 58cf020..b789b00 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1896,6 +1896,17 @@
CheckScriptFailure(lines, 'E1041:', 5)
enddef
+def Test_function_shadows_script_var()
+ var lines =<< trim END
+ vim9script
+ var Func = 1
+ def Func(): number
+ return 123
+ enddef
+ END
+ CheckScriptFailure(lines, 'E1041:', 3)
+enddef
+
def Test_script_var_shadows_command()
var lines =<< trim END
var undo = 1
@@ -2198,7 +2209,7 @@
echo 'local to function'
enddef
END
- CheckScriptFailure(lines, 'E1073:')
+ CheckScriptFailure(lines, 'E1041:')
lines =<< trim END
vim9script
@@ -2231,7 +2242,7 @@
vim9script
def Foo(): string
return 'foo'
- enddef
+ enddef
def Func()
var Foo = {-> 'lambda'}
enddef