diff --git a/src/vim9compile.c b/src/vim9compile.c
index 0d2de99..cc5a302 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1866,27 +1866,21 @@
 	{
 	    // for an object or class member get the type of the member
 	    class_T	*cl = lhs->lhs_type->tt_class;
-	    omacc_T	access;
+	    ocmember_T	*m;
 
 	    lhs->lhs_member_type = class_member_type(cl, after + 1,
-					lhs->lhs_end, &lhs->lhs_member_idx,
-					&access);
+				    lhs->lhs_end, &lhs->lhs_member_idx, &m);
 	    if (lhs->lhs_member_idx < 0)
 		return FAIL;
 
 	    // If it is private member variable, then accessing it outside the
 	    // class is not allowed.
-	    if ((access != VIM_ACCESS_ALL) && !inside_class(cctx, cl))
+	    if ((m->ocm_access != VIM_ACCESS_ALL) && !inside_class(cctx, cl))
 	    {
-		char_u	*m_name;
-		char	*msg;
-
-		m_name = vim_strnsave(after + 1, lhs->lhs_end - after - 1);
-		msg = (access == VIM_ACCESS_PRIVATE)
+		char *msg = (m->ocm_access == VIM_ACCESS_PRIVATE)
 				? e_cannot_access_private_member_str
 				: e_cannot_change_readonly_variable_str;
-		semsg(_(msg), m_name);
-		vim_free(m_name);
+		semsg(_(msg), m->ocm_name);
 		return FAIL;
 	    }
 	}
@@ -2097,10 +2091,9 @@
 	   return FAIL;
 
 	class_T	*cl = lhs->lhs_type->tt_class;
-	omacc_T	access;
 	type_T	*type = class_member_type(cl, dot + 1,
 					   lhs->lhs_end, &lhs->lhs_member_idx,
-					   &access);
+					   NULL);
 	if (lhs->lhs_member_idx < 0)
 	    return FAIL;
 
