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

patch 9.0.1127: no error if function argument shadows class member

Problem:    No error if function argument shadows class member.
Solution:   Give an error for shadowing a class member.
This commit is contained in:
Bram Moolenaar
2023-01-01 19:53:30 +00:00
parent fc966c19f8
commit 6acf757c6a
6 changed files with 82 additions and 57 deletions

View File

@@ -367,7 +367,8 @@ def Test_class_object_member_access()
v9.CheckScriptFailure(lines, 'E1041:')
enddef
def Test_class_member_access()
def Test_class_member()
# check access rules
var lines =<< trim END
vim9script
class TextPos
@@ -401,6 +402,38 @@ def Test_class_member_access()
assert_equal(17, TextPos.anybody)
END
v9.CheckScriptSuccess(lines)
# check shadowing
lines =<< trim END
vim9script
class Some
static count = 0
def Method(count: number)
echo count
enddef
endclass
var s = Some.new()
s.Method(7)
END
v9.CheckScriptFailure(lines, 'E1340: Argument already declared in the class: count')
lines =<< trim END
vim9script
class Some
static count = 0
def Method(arg: number)
var count = 3
echo arg count
enddef
endclass
var s = Some.new()
s.Method(7)
END
v9.CheckScriptFailure(lines, 'E1341: Variable already declared in the class: count')
enddef
def Test_class_function()