comparison src/vim9expr.c @ 31483:1bebc2093e6b v9.0.1074

patch 9.0.1074: class members are not supported yet Commit: https://github.com/vim/vim/commit/d505d178858434e1afef0363a9fce4bcb1bc3d06 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 18 21:42:55 2022 +0000 patch 9.0.1074: class members are not supported yet Problem: Class members are not supported yet. Solution: Add initial support for class members.
author Bram Moolenaar <Bram@vim.org>
date Sun, 18 Dec 2022 22:45:04 +0100
parents 5ef28f5ff357
children 6f1cbee3d652
comparison
equal deleted inserted replaced
31482:ac877632b863 31483:1bebc2093e6b
276 } 276 }
277 else if (type->tt_type == VAR_OBJECT) 277 else if (type->tt_type == VAR_OBJECT)
278 { 278 {
279 for (int i = 0; i < cl->class_obj_member_count; ++i) 279 for (int i = 0; i < cl->class_obj_member_count; ++i)
280 { 280 {
281 objmember_T *m = &cl->class_obj_members[i]; 281 ocmember_T *m = &cl->class_obj_members[i];
282 if (STRNCMP(name, m->om_name, len) == 0 && m->om_name[len] == NUL) 282 if (STRNCMP(name, m->ocm_name, len) == 0 && m->ocm_name[len] == NUL)
283 { 283 {
284 if (*name == '_' && cctx->ctx_ufunc->uf_class != cl) 284 if (*name == '_' && cctx->ctx_ufunc->uf_class != cl)
285 { 285 {
286 semsg(_(e_cannot_access_private_object_member_str), 286 semsg(_(e_cannot_access_private_member_str), m->ocm_name);
287 m->om_name);
288 return FAIL; 287 return FAIL;
289 } 288 }
290 289
291 generate_GET_OBJ_MEMBER(cctx, i, m->om_type); 290 generate_GET_OBJ_MEMBER(cctx, i, m->ocm_type);
292 291
293 *arg = name_end; 292 *arg = name_end;
294 return OK; 293 return OK;
295 } 294 }
296 } 295 }