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

patch 9.0.1838: Vim9: Cannot modify class member vars from def function

Problem:  Vim9: Cannot modify class member vars from def function
Solution: Add support for modifying class member variables from a def
          function

closes: #12995

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
Yegappan Lakshmanan
2023-09-01 22:05:45 +02:00
committed by Christian Brabandt
parent b147d31489
commit 3775f777a6
7 changed files with 77 additions and 24 deletions

View File

@@ -3783,4 +3783,28 @@ def Test_readonly_member_change_in_def_func()
v9.CheckScriptFailure(lines, 'E46: Cannot change read-only variable "val"')
enddef
" Test for reading and writing a class member from a def function
def Test_modify_class_member_from_def_function()
var lines =<< trim END
vim9script
class A
this.var1: number = 10
public static var2 = 20
public static var3 = 30
static _priv_var4: number = 40
endclass
def T()
assert_equal(20, A.var2)
assert_equal(30, A.var3)
A.var2 = 50
A.var3 = 60
assert_equal(50, A.var2)
assert_equal(60, A.var3)
assert_fails('echo A._priv_var4', 'E1333: Cannot access private member: _priv_var4')
enddef
T()
END
v9.CheckScriptSuccess(lines)
enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker