comparison src/testdir/test_vim9_class.vim @ 33075:0346ff4c3ee7 v9.0.1824

patch 9.0.1824: Vim9: private members may be modifiable Commit: https://github.com/vim/vim/commit/5bbcfbc4a260bc082829311086c3a1109c40f2d3 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Wed Aug 30 16:38:26 2023 +0200 patch 9.0.1824: Vim9: private members may be modifiable 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>
author Christian Brabandt <cb@256bit.org>
date Wed, 30 Aug 2023 16:45:10 +0200
parents 8362975375a4
children 667a17904f64
comparison
equal deleted inserted replaced
33074:5510af40c77b 33075:0346ff4c3ee7
3651 endclass 3651 endclass
3652 END 3652 END
3653 v9.CheckScriptFailure(lines, 'E1369: Duplicate member: val') 3653 v9.CheckScriptFailure(lines, 'E1369: Duplicate member: val')
3654 enddef 3654 enddef
3655 3655
3656 " Test for accessing a private member outside a class in a def function
3657 def Test_private_member_access_outside_class()
3658 # private object member variable
3659 var lines =<< trim END
3660 vim9script
3661 class A
3662 this._val = 10
3663 def GetVal(): number
3664 return this._val
3665 enddef
3666 endclass
3667 def T()
3668 var a = A.new()
3669 a._val = 20
3670 enddef
3671 T()
3672 END
3673 v9.CheckScriptFailure(lines, 'E1333: Cannot access private member: _val')
3674
3675 # private class member variable
3676 lines =<< trim END
3677 vim9script
3678 class A
3679 static _val: number = 10
3680 endclass
3681 def T()
3682 A._val = 20
3683 enddef
3684 T()
3685 END
3686 v9.CheckScriptFailure(lines, 'E1333: Cannot access private member: _val')
3687 enddef
3688
3656 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker 3689 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker