diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-08-30 16:38:26 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-08-30 16:40:33 +0200 |
commit | 5bbcfbc4a260bc082829311086c3a1109c40f2d3 (patch) | |
tree | 61769de553e9c99eb0f3a09af1e35ecca30da1d6 /src/testdir | |
parent | 9d8ef7cc434076dfda62ca3d3101eaae52e316cd (diff) |
patch 9.0.1824: Vim9: private members may be modifiablev9.0.1824
Problem: Vim9: private members may be modifiable
Solution: prevent modification for def function
closes: #12963
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_class.vim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 97be92d1a2..ad0be5b511 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -3653,4 +3653,37 @@ def Test_dup_member_variable() v9.CheckScriptFailure(lines, 'E1369: Duplicate member: val') enddef +" Test for accessing a private member outside a class in a def function +def Test_private_member_access_outside_class() + # private object member variable + var lines =<< trim END + vim9script + class A + this._val = 10 + def GetVal(): number + return this._val + enddef + endclass + def T() + var a = A.new() + a._val = 20 + enddef + T() + END + v9.CheckScriptFailure(lines, 'E1333: Cannot access private member: _val') + + # private class member variable + lines =<< trim END + vim9script + class A + static _val: number = 10 + endclass + def T() + A._val = 20 + enddef + T() + END + v9.CheckScriptFailure(lines, 'E1333: Cannot access private member: _val') +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |