Mercurial > vim
comparison src/vim9expr.c @ 33109:2b5cc29b0a0e v9.0.1838
patch 9.0.1838: Vim9: Cannot modify class member vars from def function
Commit: https://github.com/vim/vim/commit/3775f777a6add2a8d5060b40414e9c53062c8cd9
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Fri Sep 1 22:05:45 2023 +0200
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Sep 2023 22:15:04 +0200 |
parents | 8362975375a4 |
children | 9efd99a717c1 |
comparison
equal
deleted
inserted
replaced
33108:3acd40c4c684 | 33109:2b5cc29b0a0e |
---|---|
436 int idx; | 436 int idx; |
437 for (idx = 0; idx < cl->class_class_member_count; ++idx) | 437 for (idx = 0; idx < cl->class_class_member_count; ++idx) |
438 { | 438 { |
439 ocmember_T *m = &cl->class_class_members[idx]; | 439 ocmember_T *m = &cl->class_class_members[idx]; |
440 if (STRNCMP(name, m->ocm_name, len) == 0 && m->ocm_name[len] == NUL) | 440 if (STRNCMP(name, m->ocm_name, len) == 0 && m->ocm_name[len] == NUL) |
441 { | |
442 if (*name == '_' && !inside_class(cctx, cl)) | |
443 { | |
444 semsg(_(e_cannot_access_private_member_str), m->ocm_name); | |
445 return FAIL; | |
446 } | |
441 break; | 447 break; |
448 } | |
442 } | 449 } |
443 if (idx < cl->class_class_member_count) | 450 if (idx < cl->class_class_member_count) |
444 { | 451 { |
445 *arg = name_end; | 452 *arg = name_end; |
446 return generate_CLASSMEMBER(cctx, TRUE, cl, idx); | 453 return generate_CLASSMEMBER(cctx, TRUE, cl, idx); |