diff src/eval.c @ 33498:bff8ac203a22 v9.0.1999

patch 9.0.1999: Vim9: some error messages can be improved Commit: https://github.com/vim/vim/commit/e6c9aa5e6a88d539a412a9b5526f41ea101aa185 Author: Ernie Rael <errael@raelity.com> Date: Fri Oct 6 19:55:52 2023 +0200 patch 9.0.1999: Vim9: some error messages can be improved Problem: Vim9: some error messages can be improved Solution: Mention the defining class for variable access error message closes: #13272 Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Co-authored-by: Ernie Rael <errael@raelity.com>
author Christian Brabandt <cb@256bit.org>
date Fri, 06 Oct 2023 20:00:06 +0200
parents 0081ca43bee9
children f72004b37b2b
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -1105,26 +1105,28 @@ get_lval_check_access(
 #endif
     if (cl_exec == NULL || cl_exec != cl)
     {
+	char *msg = NULL;
 	switch (om->ocm_access)
 	{
 	    case VIM_ACCESS_PRIVATE:
-		semsg(_(e_cannot_access_private_variable_str),
-						om->ocm_name, cl->class_name);
-		return FAIL;
+		msg = e_cannot_access_private_variable_str;
+		break;
 	    case VIM_ACCESS_READ:
 		// If [idx] or .key following, read only OK.
 		if (*p == '[' || *p == '.')
 		    break;
 		if ((flags & GLV_READ_ONLY) == 0)
-		{
-		    semsg(_(e_variable_is_not_writable_str),
-						om->ocm_name, cl->class_name);
-		    return FAIL;
-		}
+		    msg = e_variable_is_not_writable_str;
 		break;
 	    case VIM_ACCESS_ALL:
 		break;
 	}
+	if (msg != NULL)
+	{
+	    emsg_var_cl_define(msg, om->ocm_name, 0, cl);
+	    return FAIL;
+	}
+
     }
     return OK;
 }