changeset 33343:41b50abddeea v9.0.1935

patch 9.0.1935: Vim9: not consistent error messages Commit: https://github.com/vim/vim/commit/7fe8f43f49f4fa6f024d0e0ea76d3df5b62a0879 Author: RestorerZ <restorer@mail2k.ru> Date: Sun Sep 24 23:21:24 2023 +0200 patch 9.0.1935: Vim9: not consistent error messages Problem: Vim9: not consistent error messages Solution: Make error messages more consistent. Use "variable" for (object/class) member closes: #13155 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: RestorerZ <restorer@mail2k.ru>
author Christian Brabandt <cb@256bit.org>
date Sun, 24 Sep 2023 23:30:06 +0200
parents bc1076074f49
children 01a23eacecbd
files src/errors.h src/eval.c src/testdir/test_vim9_class.vim src/version.c src/vim9class.c src/vim9compile.c src/vim9execute.c src/vim9expr.c src/vim9type.c
diffstat 9 files changed, 136 insertions(+), 128 deletions(-) [+]
line wrap: on
line diff
--- a/src/errors.h
+++ b/src/errors.h
@@ -3376,8 +3376,8 @@ EXTERN char e_white_space_required_after
 	INIT(= N_("E1315: White space required after name: %s"));
 EXTERN char e_class_can_only_be_defined_in_vim9_script[]
 	INIT(= N_("E1316: Class can only be defined in Vim9 script"));
-EXTERN char e_invalid_object_member_declaration_str[]
-	INIT(= N_("E1317: Invalid object member declaration: %s"));
+EXTERN char e_invalid_object_variable_declaration_str[]
+	INIT(= N_("E1317: Invalid object variable declaration: %s"));
 EXTERN char e_not_valid_command_in_class_str[]
 	INIT(= N_("E1318: Not a valid command in a class: %s"));
 EXTERN char e_using_class_as_number[]
@@ -3394,30 +3394,30 @@ EXTERN char e_using_object_as_string[]
 	INIT(= N_("E1324: Using an object as a String"));
 EXTERN char e_method_not_found_on_class_str_str[]
 	INIT(= N_("E1325: Method not found on class \"%s\": %s"));
-EXTERN char e_member_not_found_on_object_str_str[]
-	INIT(= N_("E1326: Member not found on object \"%s\": %s"));
+EXTERN char e_variable_not_found_on_object_str_str[]
+	INIT(= N_("E1326: Variable not found on object \"%s\": %s"));
 EXTERN char e_object_required_found_str[]
 	INIT(= N_("E1327: Object required, found %s"));
 EXTERN char e_constructor_default_value_must_be_vnone_str[]
 	INIT(= N_("E1328: Constructor default value must be v:none: %s"));
 // E1329 unused
-EXTERN char e_invalid_type_for_object_member_str[]
-	INIT(= N_("E1330: Invalid type for object member: %s"));
+EXTERN char e_invalid_type_for_object_variable_str[]
+	INIT(= N_("E1330: Invalid type for object variable: %s"));
 EXTERN char e_public_must_be_followed_by_this_or_static[]
 	INIT(= N_("E1331: Public must be followed by \"this\" or \"static\""));
-EXTERN char e_public_member_name_cannot_start_with_underscore_str[]
-	INIT(= N_("E1332: Public member name cannot start with underscore: %s"));
-EXTERN char e_cannot_access_private_member_str[]
-	INIT(= N_("E1333: Cannot access private member: %s"));
+EXTERN char e_public_variable_name_cannot_start_with_underscore_str[]
+	INIT(= N_("E1332: Public variable name cannot start with underscore: %s"));
+EXTERN char e_cannot_access_private_variable_str[]
+	INIT(= N_("E1333: Cannot access private variable: %s"));
 // E1334 unused
-EXTERN char e_member_is_not_writable_str[]
+EXTERN char e_variable_is_not_writable_str[]
 	INIT(= N_("E1335: Variable \"%s\" in class \"%s\" is not writable"));
 #endif
 EXTERN char e_internal_error_shortmess_too_long[]
 	INIT(= "E1336: Internal error: shortmess too long");
 #ifdef FEAT_EVAL
-EXTERN char e_class_member_str_not_found_in_class_str[]
-	INIT(= N_("E1337: Class member \"%s\" not found in class \"%s\""));
+EXTERN char e_class_variable_str_not_found_in_class_str[]
+	INIT(= N_("E1337: Class variable \"%s\" not found in class \"%s\""));
 // E1338 unused
 #endif
 #ifdef FEAT_PROP_POPUP
@@ -3433,16 +3433,16 @@ EXTERN char e_interface_can_only_be_defi
 	INIT(= N_("E1342: Interface can only be defined in Vim9 script"));
 EXTERN char e_interface_name_must_start_with_uppercase_letter_str[]
 	INIT(= N_("E1343: Interface name must start with an uppercase letter: %s"));
-EXTERN char e_cannot_initialize_member_in_interface[]
-	INIT(= N_("E1344: Cannot initialize a member in an interface"));
+EXTERN char e_cannot_initialize_variable_in_interface[]
+	INIT(= N_("E1344: Cannot initialize a variable in an interface"));
 EXTERN char e_not_valid_command_in_interface_str[]
 	INIT(= N_("E1345: Not a valid command in an interface: %s"));
 EXTERN char e_interface_name_not_found_str[]
 	INIT(= N_("E1346: Interface name not found: %s"));
 EXTERN char e_not_valid_interface_str[]
 	INIT(= N_("E1347: Not a valid interface: %s"));
-EXTERN char e_member_str_of_interface_str_not_implemented[]
-	INIT(= N_("E1348: Member \"%s\" of interface \"%s\" is not implemented"));
+EXTERN char e_variable_str_of_interface_str_not_implemented[]
+	INIT(= N_("E1348: Variable \"%s\" of interface \"%s\" is not implemented"));
 EXTERN char e_method_str_of_interface_str_not_implemented[]
 	INIT(= N_("E1349: Method \"%s\" of interface \"%s\" is not implemented"));
 EXTERN char e_duplicate_implements[]
@@ -3459,12 +3459,12 @@ EXTERN char e_duplicate_function_str[]
 	INIT(= N_("E1355: Duplicate function: %s"));
 EXTERN char e_super_must_be_followed_by_dot[]
 	INIT(= N_("E1356: \"super\" must be followed by a dot"));
-EXTERN char e_using_super_not_in_class_function[]
-	INIT(= N_("E1357: Using \"super\" not in a class function"));
+EXTERN char e_using_super_not_in_class_method[]
+	INIT(= N_("E1357: Using \"super\" not in a class method"));
 EXTERN char e_using_super_not_in_child_class[]
 	INIT(= N_("E1358: Using \"super\" not in a child class"));
-EXTERN char e_cannot_define_new_function_in_abstract_class[]
-	INIT(= N_("E1359: Cannot define a \"new\" function in an abstract class"));
+EXTERN char e_cannot_define_new_method_in_abstract_class[]
+	INIT(= N_("E1359: Cannot define a \"new\" method in an abstract class"));
 EXTERN char e_using_null_object[]
 	INIT(= N_("E1360: Using a null object"));
 #endif
@@ -3479,30 +3479,30 @@ EXTERN char e_incomplete_type[]
 EXTERN char e_warning_pointer_block_corrupted[]
 	INIT(= N_("E1364: Warning: Pointer block corrupted"));
 #ifdef FEAT_EVAL
-EXTERN char e_cannot_use_a_return_type_with_new[]
-	INIT(= N_("E1365: Cannot use a return type with the \"new\" function"));
+EXTERN char e_cannot_use_a_return_type_with_new_method[]
+	INIT(= N_("E1365: Cannot use a return type with the \"new\" method"));
 EXTERN char e_cannot_access_private_method_str[]
 	INIT(= N_("E1366: Cannot access private method: %s"));
-EXTERN char e_member_str_of_interface_str_has_different_access[]
-	INIT(= N_("E1367: Access level of member \"%s\" of interface \"%s\" is different"));
+EXTERN char e_variable_str_of_interface_str_has_different_access[]
+	INIT(= N_("E1367: Access level of variable \"%s\" of interface \"%s\" is different"));
 EXTERN char e_static_cannot_be_followed_by_this[]
-	INIT(= N_("E1368: Static cannot be followed by \"this\" in a member name"));
-EXTERN char e_duplicate_member_str[]
-	INIT(= N_("E1369: Duplicate member: %s"));
-EXTERN char e_cannot_define_new_function_as_static[]
-	INIT(= N_("E1370: Cannot define a \"new\" function as static"));
+	INIT(= N_("E1368: Static cannot be followed by \"this\" in a variable name"));
+EXTERN char e_duplicate_variable_str[]
+	INIT(= N_("E1369: Duplicate variable: %s"));
+EXTERN char e_cannot_define_new_method_as_static[]
+	INIT(= N_("E1370: Cannot define a \"new\" method as static"));
 EXTERN char e_abstract_must_be_followed_by_def_or_static[]
 	INIT(= N_("E1371: Abstract must be followed by \"def\" or \"static\""));
 EXTERN char e_abstract_method_in_concrete_class[]
 	INIT(= N_("E1372: Abstract method \"%s\" cannot be defined in a concrete class"));
 EXTERN char e_abstract_method_str_not_found[]
 	INIT(= N_("E1373: Abstract method \"%s\" is not implemented"));
-EXTERN char e_class_member_str_accessible_only_inside_class_str[]
-	INIT(= N_("E1374: Class member \"%s\" accessible only inside class \"%s\""));
-EXTERN char e_class_member_str_accessible_only_using_class_str[]
-	INIT(= N_("E1375: Class member \"%s\" accessible only using class \"%s\""));
-EXTERN char e_object_member_str_accessible_only_using_object_str[]
-	INIT(= N_("E1376: Object member \"%s\" accessible only using class \"%s\" object"));
+EXTERN char e_class_variable_str_accessible_only_inside_class_str[]
+	INIT(= N_("E1374: Class variable \"%s\" accessible only inside class \"%s\""));
+EXTERN char e_class_variable_str_accessible_only_using_class_str[]
+	INIT(= N_("E1375: Class variable \"%s\" accessible only using class \"%s\""));
+EXTERN char e_object_variable_str_accessible_only_using_object_str[]
+	INIT(= N_("E1376: Object variable \"%s\" accessible only using class \"%s\" object"));
 EXTERN char e_method_str_of_class_str_has_different_access[]
 	INIT(= N_("E1377: Access level of method \"%s\" is different in class \"%s\""));
 EXTERN char e_static_member_not_supported_in_interface[]
@@ -3513,10 +3513,16 @@ EXTERN char e_private_method_not_support
 	INIT(= N_("E1380: Private method not supported in an interface"));
 EXTERN char e_interface_cannot_use_implements[]
 	INIT(= N_("E1381: Interface cannot use \"implements\""));
-EXTERN char e_member_str_type_mismatch_expected_str_but_got_str[]
-	INIT(= N_("E1382: Member \"%s\": type mismatch, expected %s but got %s"));
+EXTERN char e_variable_str_type_mismatch_expected_str_but_got_str[]
+	INIT(= N_("E1382: Variable \"%s\": type mismatch, expected %s but got %s"));
 EXTERN char e_method_str_type_mismatch_expected_str_but_got_str[]
 	INIT(= N_("E1383: Method \"%s\": type mismatch, expected %s but got %s"));
+EXTERN char e_class_method_str_accessible_only_inside_class_str[]
+	INIT(= N_("E1384: Class method \"%s\" accessible only inside class \"%s\""));
+EXTERN char e_class_method_str_accessible_only_using_class_str[]
+	INIT(= N_("E1385: Class method \"%s\" accessible only using class \"%s\""));
+EXTERN char e_object_method_str_accessible_only_using_object_str[]
+	INIT(= N_("E1386: Object method \"%s\" accessible only using class \"%s\" object"));
 #endif
 EXTERN char e_cannot_mix_positional_and_non_positional_str[]
 	INIT(= N_("E1400: Cannot mix positional and non-positional arguments: %s"));
@@ -3532,4 +3538,4 @@ EXTERN char e_invalid_format_specifier_s
 	INIT(= N_("E1405: Invalid format specifier: %s"));
 EXTERN char e_aptypes_is_null_nr_str[]
 	INIT(= "E1408: Internal error: ap_types or ap_types[idx] is NULL: %d: %s");
-// E1384 - E1399 unused
+// E1387 - E1399 unused
--- a/src/eval.c
+++ b/src/eval.c
@@ -1560,7 +1560,7 @@ get_lval(
 			switch (om->ocm_access)
 			{
 			    case VIM_ACCESS_PRIVATE:
-				semsg(_(e_cannot_access_private_member_str),
+				semsg(_(e_cannot_access_private_variable_str),
 					om->ocm_name);
 				return NULL;
 			    case VIM_ACCESS_READ:
@@ -1569,7 +1569,7 @@ get_lval(
 				    break;
 				if ((flags & GLV_READ_ONLY) == 0)
 				{
-				    semsg(_(e_member_is_not_writable_str),
+				    semsg(_(e_variable_is_not_writable_str),
 					    om->ocm_name, cl->class_name);
 				    return NULL;
 				}
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -132,7 +132,7 @@ def Test_class_basic()
       endclass
       var obj = Something.new()
   END
-  v9.CheckSourceFailure(lines, 'E1326: Member not found on object "Something": state')
+  v9.CheckSourceFailure(lines, 'E1326: Variable not found on object "Something": state')
 
   # Space before ":" in a member variable declaration
   lines =<< trim END
@@ -563,7 +563,7 @@ def Test_member_any_used_as_object()
     var outer_obj = Outer.new(inner_obj)
     F(outer_obj)
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _value')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _value')
 
   # Try modifying a non-existing variable using an "any" object
   lines =<< trim END
@@ -585,7 +585,7 @@ def Test_member_any_used_as_object()
     var outer_obj = Outer.new(inner_obj)
     F(outer_obj)
   END
-  v9.CheckSourceFailure(lines, 'E1326: Member not found on object "Inner": someval')
+  v9.CheckSourceFailure(lines, 'E1326: Variable not found on object "Inner": someval')
 enddef
 
 " Nested assignment to a object variable which is of another class type
@@ -1009,7 +1009,7 @@ def Test_class_object_member_inits()
        this.value: void
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1330: Invalid type for object member: void')
+  v9.CheckSourceFailure(lines, 'E1330: Invalid type for object variable: void')
 enddef
 
 " Test for instance variable access
@@ -1154,7 +1154,7 @@ def Test_instance_variable_access()
     endclass
     A.val = 1
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "val" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1376: Object variable "val" accessible only using class "A" object')
 
   # Read a instance variable using the class name in the script context
   lines =<< trim END
@@ -1164,7 +1164,7 @@ def Test_instance_variable_access()
     endclass
     var i = A.val
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "val" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1376: Object variable "val" accessible only using class "A" object')
 
   # Modify a instance variable using the class name in a def function
   lines =<< trim END
@@ -1177,7 +1177,7 @@ def Test_instance_variable_access()
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "val" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1376: Object variable "val" accessible only using class "A" object')
 
   # Read a instance variable using the class name in a def function
   lines =<< trim END
@@ -1190,7 +1190,7 @@ def Test_instance_variable_access()
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "val" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1376: Object variable "val" accessible only using class "A" object')
 
   # Access from child class extending a class:
   lines =<< trim END
@@ -1237,7 +1237,7 @@ def Test_class_variable_access()
       static this.val = 1
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1368: Static cannot be followed by "this" in a member name')
+  v9.CheckSourceFailure(lines, 'E1368: Static cannot be followed by "this" in a variable name')
 
   # Test for "static" cannot be followed by "public".
   lines =<< trim END
@@ -1282,7 +1282,7 @@ def Test_class_variable_access()
       var b = B.new()
       b.Foo()
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _priv_class_var')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _priv_class_var')
 
   # A private class variable cannot be modified from a child class
   lines =<< trim END
@@ -1300,7 +1300,7 @@ def Test_class_variable_access()
       var b = B.new()
       b.Foo()
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _priv_class_var')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _priv_class_var')
 
   # Access from child class extending a class and from script context
   lines =<< trim END
@@ -1689,7 +1689,7 @@ def Test_class_member()
     var a = A.new()
     var v = a.bar
   END
-  v9.CheckSourceFailure(lines, 'E1326: Member not found on object "A": bar')
+  v9.CheckSourceFailure(lines, 'E1326: Variable not found on object "A": bar')
 enddef
 
 func Test_class_garbagecollect()
@@ -1881,7 +1881,7 @@ def Test_class_defcompile()
 
       defcompile C.new
   END
-  v9.CheckSourceFailure(lines, 'E1370: Cannot define a "new" function as static')
+  v9.CheckSourceFailure(lines, 'E1370: Cannot define a "new" method as static')
 
   # Trying to compile a function using a non-existing class variable
   lines =<< trim END
@@ -2103,7 +2103,7 @@ def Test_class_implements_interface()
         enddef
       endclass
   END
-  v9.CheckSourceFailure(lines, 'E1348: Member "counter" of interface "Some" is not implemented')
+  v9.CheckSourceFailure(lines, 'E1348: Variable "counter" of interface "Some" is not implemented')
 
   lines =<< trim END
       vim9script
@@ -2718,7 +2718,7 @@ def Test_class_extends()
       endclass
       var c = Child.new()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "new" accessible only using class "Child"')
+  v9.CheckSourceFailure(lines, 'E1385: Class method "new" accessible only using class "Child"')
 
   # base class with more than one object member
   lines =<< trim END
@@ -4000,7 +4000,7 @@ def Test_static_inheritence()
     assert_equal(102, ob.AccessObject())
     assert_equal(103, oc.AccessObject())
 
-    assert_fails('echo oc.AccessPrivateStaticThroughClassName()', 'E1333: Cannot access private member: _svar')
+    assert_fails('echo oc.AccessPrivateStaticThroughClassName()', 'E1333: Cannot access private variable: _svar')
 
     # verify object properly resolves to correct static
     assert_equal(1, oa.AccessStaticThroughObject())
@@ -4020,7 +4020,7 @@ def Test_dup_member_variable()
       this.val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val')
 
   # Duplicate private member variable
   lines =<< trim END
@@ -4030,7 +4030,7 @@ def Test_dup_member_variable()
       this._val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val')
 
   # Duplicate public member variable
   lines =<< trim END
@@ -4040,7 +4040,7 @@ def Test_dup_member_variable()
       public this.val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val')
 
   # Duplicate private member variable
   lines =<< trim END
@@ -4050,7 +4050,7 @@ def Test_dup_member_variable()
       this._val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val')
 
   # Duplicate public and private member variable
   lines =<< trim END
@@ -4060,7 +4060,7 @@ def Test_dup_member_variable()
       public this.val = 10
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val')
 
   # Duplicate class member variable
   lines =<< trim END
@@ -4070,7 +4070,7 @@ def Test_dup_member_variable()
       static _s: string = "def"
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _s')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _s')
 
   # Duplicate public and private class member variable
   lines =<< trim END
@@ -4080,7 +4080,7 @@ def Test_dup_member_variable()
       static _s: string = "def"
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _s')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _s')
 
   # Duplicate class and object member variable
   lines =<< trim END
@@ -4109,7 +4109,7 @@ def Test_dup_member_variable()
       this.val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val')
 
   # Duplicate object private member variable in a derived class
   lines =<< trim END
@@ -4123,7 +4123,7 @@ def Test_dup_member_variable()
       this._val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val')
 
   # Duplicate object private member variable in a derived class
   lines =<< trim END
@@ -4137,7 +4137,7 @@ def Test_dup_member_variable()
       this._val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: _val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val')
 
   # Duplicate object member variable in a derived class
   lines =<< trim END
@@ -4151,7 +4151,7 @@ def Test_dup_member_variable()
       this.val = 20
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1369: Duplicate member: val')
+  v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val')
 
   # Two member variables with a common prefix
   lines =<< trim END
@@ -4181,7 +4181,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _val')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _val')
 
   # access a non-existing private object member variable
   lines =<< trim END
@@ -4195,7 +4195,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1326: Member not found on object "A": _a')
+  v9.CheckSourceFailure(lines, 'E1326: Variable not found on object "A": _a')
 
   # private static member variable
   lines =<< trim END
@@ -4209,7 +4209,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "_val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "_val" accessible only using class "A"')
 
   # private static member variable
   lines =<< trim END
@@ -4223,7 +4223,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "_val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "_val" accessible only using class "A"')
 
   # private static class variable
   lines =<< trim END
@@ -4236,7 +4236,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _val')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _val')
 
   # private static class variable
   lines =<< trim END
@@ -4249,7 +4249,7 @@ def Test_private_member_access_outside_c
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1333: Cannot access private member: _val')
+  v9.CheckSourceFailure(lines, 'E1333: Cannot access private variable: _val')
 enddef
 
 " Test for changing the member access of an interface in a implementation class
@@ -4263,7 +4263,7 @@ def Test_change_interface_member_access(
       this.val = 10
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1367: Access level of member "val" of interface "A" is different')
+  v9.CheckSourceFailure(lines, 'E1367: Access level of variable "val" of interface "A" is different')
 
   lines =<< trim END
     vim9script
@@ -4274,7 +4274,7 @@ def Test_change_interface_member_access(
       public this.val = 10
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1367: Access level of member "val" of interface "A" is different')
+  v9.CheckSourceFailure(lines, 'E1367: Access level of variable "val" of interface "A" is different')
 enddef
 
 " Test for trying to change a readonly member from a def function
@@ -4310,7 +4310,7 @@ def Test_modify_class_member_from_def_fu
       A.var3 = {c: 3, d: 4}
       assert_equal([3, 4], A.var2)
       assert_equal({c: 3, d: 4}, A.var3)
-      assert_fails('echo A._priv_var4', 'E1333: Cannot access private member: _priv_var4')
+      assert_fails('echo A._priv_var4', 'E1333: Cannot access private variable: _priv_var4')
     enddef
     T()
   END
@@ -4352,7 +4352,7 @@ def Test_class_variable_access_using_obj
     var a = A.new()
     echo a.svar2
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "svar2" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "svar2" accessible only using class "A"')
 
   # Cannot write to a class variable using an object in script context
   lines =<< trim END
@@ -4365,7 +4365,7 @@ def Test_class_variable_access_using_obj
     var a = A.new()
     a.svar2 = [2]
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "svar2" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "svar2" accessible only using class "A"')
 
   # Cannot read from a class variable using an object in def method context
   lines =<< trim END
@@ -4381,7 +4381,7 @@ def Test_class_variable_access_using_obj
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "svar2" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "svar2" accessible only using class "A"')
 
   # Cannot write to a class variable using an object in def method context
   lines =<< trim END
@@ -4397,7 +4397,7 @@ def Test_class_variable_access_using_obj
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "svar2" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "svar2" accessible only using class "A"')
 enddef
 
 " Test for using a interface method using a child object
@@ -4636,7 +4636,7 @@ def Test_class_method_call_from_subclass
     var b = B.new()
     b.Bar()
   END
-  v9.CheckSourceFailure(lines, 'E1374: Class member "Foo" accessible only inside class "A"')
+  v9.CheckSourceFailure(lines, 'E1384: Class method "Foo" accessible only inside class "A"')
 enddef
 
 " Test for calling a class method using an object in a def function context and
@@ -4680,7 +4680,7 @@ def Test_class_method_call_using_object(
     var a = A.new()
     assert_equal('foo', a.Foo())
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "Foo" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1385: Class method "Foo" accessible only using class "A"')
 
   # def function context
   lines =<< trim END
@@ -4697,7 +4697,7 @@ def Test_class_method_call_using_object(
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "Foo" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1385: Class method "Foo" accessible only using class "A"')
 enddef
 
 def Test_class_variable()
@@ -4750,7 +4750,7 @@ def Test_class_variable()
     endclass
     B.ClassFunc()
   END
-  v9.CheckSourceFailure(lines, 'E1374: Class member "val" accessible only inside class "A"')
+  v9.CheckSourceFailure(lines, 'E1374: Class variable "val" accessible only inside class "A"')
 
   # Reading a parent class variable from a child class method
   lines =<< trim END
@@ -4767,7 +4767,7 @@ def Test_class_variable()
     endclass
     B.ClassFunc()
   END
-  v9.CheckSourceFailure(lines, 'E1374: Class member "val" accessible only inside class "A"')
+  v9.CheckSourceFailure(lines, 'E1374: Class variable "val" accessible only inside class "A"')
 
   # Modifying a parent class variable from a child object method
   lines =<< trim END
@@ -4785,7 +4785,7 @@ def Test_class_variable()
     var b = B.new()
     b.ObjFunc()
   END
-  v9.CheckSourceFailure(lines, 'E1374: Class member "val" accessible only inside class "A"')
+  v9.CheckSourceFailure(lines, 'E1374: Class variable "val" accessible only inside class "A"')
 
   # Reading a parent class variable from a child object method
   lines =<< trim END
@@ -4803,7 +4803,7 @@ def Test_class_variable()
     var b = B.new()
     b.ObjFunc()
   END
-  v9.CheckSourceFailure(lines, 'E1374: Class member "val" accessible only inside class "A"')
+  v9.CheckSourceFailure(lines, 'E1374: Class variable "val" accessible only inside class "A"')
 
   # Modifying a class variable using an object at script level
   lines =<< trim END
@@ -4815,7 +4815,7 @@ def Test_class_variable()
     var a = A.new()
     a.val = 20
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "val" accessible only using class "A"')
 
   # Reading a class variable using an object at script level
   lines =<< trim END
@@ -4827,7 +4827,7 @@ def Test_class_variable()
     var a = A.new()
     var i = a.val
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "val" accessible only using class "A"')
 
   # Modifying a class variable using an object at function level
   lines =<< trim END
@@ -4843,7 +4843,7 @@ def Test_class_variable()
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "val" accessible only using class "A"')
 
   # Reading a class variable using an object at function level
   lines =<< trim END
@@ -4858,7 +4858,7 @@ def Test_class_variable()
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1375: Class member "val" accessible only using class "A"')
+  v9.CheckSourceFailure(lines, 'E1375: Class variable "val" accessible only using class "A"')
 enddef
 
 " Test for using a duplicate class method and class variable in a child class
@@ -4957,7 +4957,7 @@ def Test_instance_method_call_using_clas
     endclass
     A.Foo()
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "Foo" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1386: Object method "Foo" accessible only using class "A" object')
 
   # Invoke an object method using a class in def function context
   lines =<< trim END
@@ -4972,7 +4972,7 @@ def Test_instance_method_call_using_clas
     enddef
     T()
   END
-  v9.CheckSourceFailure(lines, 'E1376: Object member "Foo" accessible only using class "A" object')
+  v9.CheckSourceFailure(lines, 'E1386: Object method "Foo" accessible only using class "A" object')
 enddef
 
 " Test for duplicate class method and instance method
@@ -5218,7 +5218,7 @@ def Test_extend_interface()
       enddef
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1348: Member "var2" of interface "B" is not implemented')
+  v9.CheckSourceFailure(lines, 'E1348: Variable "var2" of interface "B" is not implemented')
 
   # interface cannot extend a class
   lines =<< trim END
@@ -5276,7 +5276,7 @@ def Test_extend_interface()
       this.val2: number
     endinterface
   END
-  v9.CheckSourceFailure(lines, 'E1382: Member "val1": type mismatch, expected number but got string')
+  v9.CheckSourceFailure(lines, 'E1382: Variable "val1": type mismatch, expected number but got string')
 enddef
 
 " Test for a child class implementing an interface when some of the methods are
@@ -5433,7 +5433,7 @@ def Test_child_class_implements_interfac
       this.var1 = [{a: 10}]
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1348: Member "var3" of interface "Intf" is not implemented')
+  v9.CheckSourceFailure(lines, 'E1348: Variable "var3" of interface "Intf" is not implemented')
 
   # One of the interface variables is of different type
   lines =<< trim END
@@ -5460,7 +5460,7 @@ def Test_child_class_implements_interfac
       this.var1 = [{a: 10}]
     endclass
   END
-  v9.CheckSourceFailure(lines, 'E1382: Member "var3": type mismatch, expected list<dict<number>> but got list<dict<string>>')
+  v9.CheckSourceFailure(lines, 'E1382: Variable "var3": type mismatch, expected list<dict<number>> but got list<dict<string>>')
 enddef
 
 " Test for extending an interface with duplicate variables and methods
@@ -5531,7 +5531,7 @@ def Test_implements_using_var_type_any()
     endclass
     var b = B.new()
   END
-  v9.CheckSourceFailure(lines, 'E1382: Member "val": type mismatch, expected list<dict<string>> but got dict<number>')
+  v9.CheckSourceFailure(lines, 'E1382: Variable "val": type mismatch, expected list<dict<string>> but got dict<number>')
 enddef
 
 " Test for assigning to a member variable in a nested class
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1935,
+/**/
     1934,
 /**/
     1933,
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -79,7 +79,7 @@ parse_member(
     *varname_end = to_name_end(varname, FALSE);
     if (*varname == '_' && has_public)
     {
-	semsg(_(e_public_member_name_cannot_start_with_underscore_str), line);
+	semsg(_(e_public_variable_name_cannot_start_with_underscore_str), line);
 	return FAIL;
     }
 
@@ -113,7 +113,7 @@ parse_member(
 
     if (init_expr == NULL && *init_arg == '=')
     {
-	emsg(_(e_cannot_initialize_member_in_interface));
+	emsg(_(e_cannot_initialize_variable_in_interface));
 	return FAIL;
     }
 
@@ -426,7 +426,7 @@ extends_check_dup_members(
 		    ? p_m->ocm_name + 1 : p_m->ocm_name;
 		if (STRCMP(pstr, qstr) == 0)
 		{
-		    semsg(_(e_duplicate_member_str), c_m->ocm_name);
+		    semsg(_(e_duplicate_variable_str), c_m->ocm_name);
 		    return FALSE;
 		}
 	    }
@@ -586,7 +586,7 @@ intf_variable_present(
 	// Ensure the access type is same
 	if (if_var->ocm_access != m->ocm_access)
 	{
-	    semsg(_(e_member_str_of_interface_str_has_different_access),
+	    semsg(_(e_variable_str_of_interface_str_has_different_access),
 		    if_var->ocm_name, intf_class_name);
 	    return FALSE;
 	}
@@ -662,7 +662,7 @@ validate_interface_variables(
 	    if (!intf_variable_present(intf_class_name, &if_ms[if_i],
 				is_class_var, cl_ms, cl_count, extends_cl))
 	    {
-		semsg(_(e_member_str_of_interface_str_not_implemented),
+		semsg(_(e_variable_str_of_interface_str_not_implemented),
 			if_ms[if_i].ocm_name, intf_class_name);
 		return FALSE;
 	    }
@@ -908,7 +908,7 @@ is_duplicate_member(garray_T *mgap, char
 	char_u	*qstr = *m->ocm_name == '_' ? m->ocm_name + 1 : m->ocm_name;
 	if (STRCMP(pstr, qstr) == 0)
 	{
-	    semsg(_(e_duplicate_member_str), name);
+	    semsg(_(e_duplicate_variable_str), name);
 	    dup = TRUE;
 	    break;
 	}
@@ -957,20 +957,20 @@ is_valid_constructor(ufunc_T *uf, int is
     // Constructors are not allowed in abstract classes.
     if (is_abstract)
     {
-	emsg(_(e_cannot_define_new_function_in_abstract_class));
+	emsg(_(e_cannot_define_new_method_in_abstract_class));
 	return FALSE;
     }
     // A constructor is always static, no need to define it so.
     if (has_static)
     {
-	emsg(_(e_cannot_define_new_function_as_static));
+	emsg(_(e_cannot_define_new_method_as_static));
 	return FALSE;
     }
     // A return type should not be specified for the new()
     // constructor method.
     if (uf->uf_ret_type->tt_type != VAR_VOID)
     {
-	emsg(_(e_cannot_use_a_return_type_with_new));
+	emsg(_(e_cannot_use_a_return_type_with_new_method));
 	return FALSE;
     }
     return TRUE;
@@ -1608,7 +1608,7 @@ early_ret:
 	{
 	    if (p[4] != '.' || !eval_isnamec1(p[5]))
 	    {
-		semsg(_(e_invalid_object_member_declaration_str), p);
+		semsg(_(e_invalid_object_variable_declaration_str), p);
 		break;
 	    }
 	    if (has_static)
@@ -2074,7 +2074,7 @@ get_member_tv(
 
     if (*name == '_')
     {
-	semsg(_(e_cannot_access_private_member_str), m->ocm_name);
+	semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
 	return FAIL;
     }
 
@@ -2233,7 +2233,7 @@ class_object_index(
 
 	if (*name == '_')
 	{
-	    semsg(_(e_cannot_access_private_member_str), m->ocm_name);
+	    semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
 	    return FAIL;
 	}
 
@@ -2770,7 +2770,7 @@ method_not_found_msg(class_T *cl, vartyp
 	if (*name == '_')
 	    semsg(_(e_cannot_access_private_method_str), method_name);
 	else
-	    semsg(_(e_class_member_str_accessible_only_using_class_str),
+	    semsg(_(e_class_method_str_accessible_only_using_class_str),
 		    method_name, cl->class_name);
     }
     else if ((v_type == VAR_CLASS)
@@ -2780,7 +2780,7 @@ method_not_found_msg(class_T *cl, vartyp
 	if (*name == '_')
 	    semsg(_(e_cannot_access_private_method_str), method_name);
 	else
-	    semsg(_(e_object_member_str_accessible_only_using_object_str),
+	    semsg(_(e_object_method_str_accessible_only_using_object_str),
 		    method_name, cl->class_name);
     }
     else
@@ -2800,19 +2800,19 @@ member_not_found_msg(class_T *cl, vartyp
     if (v_type == VAR_OBJECT)
     {
 	if (class_member_idx(cl, name, len) >= 0)
-	    semsg(_(e_class_member_str_accessible_only_using_class_str),
+	    semsg(_(e_class_variable_str_accessible_only_using_class_str),
 		    varname, cl->class_name);
 	else
-	    semsg(_(e_member_not_found_on_object_str_str), cl->class_name,
+	    semsg(_(e_variable_not_found_on_object_str_str), cl->class_name,
 		    varname);
     }
     else
     {
 	if (object_member_idx(cl, name, len) >= 0)
-	    semsg(_(e_object_member_str_accessible_only_using_object_str),
+	    semsg(_(e_object_variable_str_accessible_only_using_object_str),
 		    varname, cl->class_name);
 	else
-	    semsg(_(e_class_member_str_not_found_in_class_str),
+	    semsg(_(e_class_variable_str_not_found_in_class_str),
 		    varname, cl->class_name);
     }
     vim_free(varname);
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1610,8 +1610,8 @@ lhs_class_member_modifiable(lhs_T *lhs, 
 	     || (!is_object && cctx->ctx_ufunc->uf_class != cl)))
     {
 	char *msg = (m->ocm_access == VIM_ACCESS_PRIVATE)
-				? e_cannot_access_private_member_str
-				: e_member_is_not_writable_str;
+				? e_cannot_access_private_variable_str
+				: e_variable_is_not_writable_str;
 	semsg(_(msg), m->ocm_name, cl->class_name);
 	return FALSE;
     }
@@ -1750,7 +1750,7 @@ compile_lhs(
 		{
 		    // A class variable can be accessed without the class name
 		    // only inside a class.
-		    semsg(_(e_class_member_str_accessible_only_inside_class_str),
+		    semsg(_(e_class_variable_str_accessible_only_inside_class_str),
 			    lhs->lhs_name, defcl->class_name);
 		    return FAIL;
 		}
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2181,7 +2181,7 @@ execute_storeindex(isn_T *iptr, ectx_T *
 	    {
 		if (*member == '_')
 		{
-		    semsg(_(e_cannot_access_private_member_str), m->ocm_name);
+		    semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
 		    status = FAIL;
 		}
 
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -293,7 +293,7 @@ compile_class_object_index(cctx_T *cctx,
     {
 	if (cctx->ctx_ufunc == NULL || cctx->ctx_ufunc->uf_class == NULL)
 	{
-	    emsg(_(e_using_super_not_in_class_function));
+	    emsg(_(e_using_super_not_in_class_method));
 	    return FAIL;
 	}
 	is_super = TRUE;
@@ -407,7 +407,7 @@ compile_class_object_index(cctx_T *cctx,
 	{
 	    if (*name == '_' && !inside_class(cctx, cl))
 	    {
-		semsg(_(e_cannot_access_private_member_str), m->ocm_name);
+		semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
 		return FAIL;
 	    }
 
@@ -443,7 +443,7 @@ compile_class_object_index(cctx_T *cctx,
 	    // it is defined.
 	    if (*name == '_' && cctx->ctx_ufunc->uf_class != cl)
 	    {
-		semsg(_(e_cannot_access_private_member_str), m->ocm_name);
+		semsg(_(e_cannot_access_private_variable_str), m->ocm_name);
 		return FAIL;
 	    }
 
@@ -772,7 +772,7 @@ compile_load(
 		    res = generate_CLASSMEMBER(cctx, TRUE, cl, idx);
 		else
 		{
-		    semsg(_(e_class_member_str_accessible_only_inside_class_str),
+		    semsg(_(e_class_variable_str_accessible_only_inside_class_str),
 			    name, cl->class_name);
 		    res = FAIL;
 		}
@@ -1151,7 +1151,7 @@ compile_call(
 	    }
 	    else
 	    {
-		semsg(_(e_class_member_str_accessible_only_inside_class_str),
+		semsg(_(e_class_method_str_accessible_only_inside_class_str),
 			name, cl->class_name);
 		res = FAIL;
 	    }
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -648,7 +648,7 @@ valid_declaration_type(type_T *type)
     {
 	char *tofree = NULL;
 	char *name = type_name(type, &tofree);
-	semsg(_(e_invalid_type_for_object_member_str), name);
+	semsg(_(e_invalid_type_for_object_variable_str), name);
 	vim_free(tofree);
 	return FALSE;
     }
@@ -755,7 +755,7 @@ type_mismatch_where(type_T *expected, ty
     switch (where.wt_kind)
     {
 	case WT_MEMBER:
-	    semsg(_(e_member_str_type_mismatch_expected_str_but_got_str),
+	    semsg(_(e_variable_str_type_mismatch_expected_str_but_got_str),
 		    where.wt_func_name, typename1, typename2);
 	    break;
 	case WT_METHOD: