mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.0.2170: Vim9: no support for const/final class/objects vars
Problem: Vim9: no support for const/final class/objects vars Solution: Support final and const object and class variables closes: #13655 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
d8bf87c9fb
commit
e5437c5427
@@ -1770,6 +1770,12 @@ compile_lhs(
|
||||
lhs->lhs_name);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
ocmember_T *m =
|
||||
&defcl->class_class_members[lhs->lhs_classmember_idx];
|
||||
if (oc_var_check_ro(defcl, m))
|
||||
return FAIL;
|
||||
|
||||
lhs->lhs_dest = dest_class_member;
|
||||
lhs->lhs_class = cctx->ctx_ufunc->uf_class;
|
||||
lhs->lhs_type =
|
||||
@@ -2040,6 +2046,10 @@ compile_lhs(
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (!IS_CONSTRUCTOR_METHOD(cctx->ctx_ufunc)
|
||||
&& oc_var_check_ro(cl, m))
|
||||
return FAIL;
|
||||
|
||||
lhs->lhs_member_type = m->ocm_type;
|
||||
}
|
||||
else
|
||||
@@ -3356,7 +3366,7 @@ compile_def_function(
|
||||
|
||||
type_T *type = get_type_on_stack(&cctx, 0);
|
||||
if (m->ocm_type->tt_type == VAR_ANY
|
||||
&& !m->ocm_has_type
|
||||
&& !(m->ocm_flags & OCMFLAG_HAS_TYPE)
|
||||
&& type->tt_type != VAR_SPECIAL)
|
||||
{
|
||||
// If the member variable type is not yet set, then use
|
||||
|
Reference in New Issue
Block a user