patch 9.0.1982: vim9: clean up from v9.0.1955
Problem: vim9: clean up from v9.0.1955
Solution: Fix a few remaining issues, improve error message
- Use `cl_exec`, the executing class, to check permissions in `get_lval()`.
- Handle lockvar of script variable from class.
- Add 'in class "Xxx"' to e_cannot_access_private_variable_str.
closes: #13222
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
diff --git a/src/vim9expr.c b/src/vim9expr.c
index 5a302d6..05eb524 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -407,7 +407,8 @@
{
if (*name == '_' && !inside_class(cctx, cl))
{
- semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
+ semsg(_(e_cannot_access_private_variable_str), m->ocm_name,
+ cl->class_name);
return FAIL;
}
@@ -442,7 +443,8 @@
// it is defined.
if (*name == '_' && cctx->ctx_ufunc->uf_class != cl)
{
- semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
+ semsg(_(e_cannot_access_private_variable_str), m->ocm_name,
+ cl->class_name);
return FAIL;
}