Mercurial > vim
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 } |