patch 9.0.2012: Vim9: error message can be more accurate

Commit: 
https://github.com/vim/vim/commit/f8da32461969a657ce9f132f35ddbec4068d3296
Author: Ernie Rael <[email protected]>
Date:   Wed Oct 11 21:22:12 2023 +0200

    patch 9.0.2012: Vim9: error message can be more accurate
    
    Problem:  Vim9: error message can be more accurate
    Solution: Fix the error messages
    
    Fix message for some single use error messages.
    
    closes: #13312
    
    Signed-off-by: Christian Brabandt <[email protected]>
    Co-authored-by: Ernie Rael <[email protected]>

diff --git a/src/errors.h b/src/errors.h
index 2474e27d4..50cf6698d 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -1771,8 +1771,8 @@ EXTERN char e_less_targets_than_list_items[]
        INIT(= N_("E687: Less targets than List items"));
 EXTERN char e_more_targets_than_list_items[]
        INIT(= N_("E688: More targets than List items"));
-EXTERN char e_can_only_index_list_dictionary_or_blob[]
-       INIT(= N_("E689: Can only index a List, Dictionary or Blob"));
+EXTERN char e_index_not_allowed_after_str_str[]
+       INIT(= N_("E689: Index not allowed after a %s: %s"));
 EXTERN char e_missing_in_after_for[]
        INIT(= N_("E690: Missing \"in\" after :for"));
 EXTERN char e_can_only_compare_list_with_list[]
@@ -3081,8 +3081,8 @@ EXTERN char e_libsodium_decryption_failed_premature[]
 #ifdef FEAT_EVAL
 EXTERN char e_no_white_space_allowed_after_str_str[]
        INIT(= N_("E1202: No white space allowed after '%s': %s"));
-EXTERN char e_dot_can_only_be_used_on_dictionary_str[]
-       INIT(= N_("E1203: Dot can only be used on a dictionary: %s"));
+EXTERN char e_dot_not_allowed_after_str_str[]
+       INIT(= N_("E1203: Dot not allowed after a %s: %s"));
 #endif
 EXTERN char e_regexp_number_after_dot_pos_search_chr[]
        INIT(= N_("E1204: No Number allowed after .: '\%%%c'"));
diff --git a/src/eval.c b/src/eval.c
index 93109effb..8b26eb189 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1375,9 +1375,9 @@ get_lval(
                      && v_type != VAR_OBJECT
                      && v_type != VAR_CLASS)
        {
-           // TODO: have a message with obj/class, not just dict,
            if (!quiet)
-               semsg(_(e_dot_can_only_be_used_on_dictionary_str), name);
+               semsg(_(e_dot_not_allowed_after_str_str),
+                                               vartype_name(v_type), name);
            return NULL;
        }
        if (v_type != VAR_LIST
@@ -1386,9 +1386,9 @@ get_lval(
                && v_type != VAR_OBJECT
                && v_type != VAR_CLASS)
        {
-           // TODO: have a message with obj/class, not just dict/list/blob,
            if (!quiet)
-               emsg(_(e_can_only_index_list_dictionary_or_blob));
+               semsg(_(e_index_not_allowed_after_str_str),
+                                               vartype_name(v_type), name);
            return NULL;
        }
 
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim
index b7c8ad734..09e73ef9c 100644
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -435,13 +435,13 @@ func Test_dict_assign()
     let n = 0
     let n.key = 3
   END
-  call v9.CheckScriptFailure(lines, 'E1203: Dot can only be used on a 
dictionary: n.key = 3')
+  call v9.CheckScriptFailure(lines, 'E1203: Dot not allowed after a number: 
n.key = 3')
   let lines =<< trim END
     vim9script
     var n = 0
     n.key = 3
   END
-  call v9.CheckScriptFailure(lines, 'E1203: Dot can only be used on a 
dictionary: n.key = 3')
+  call v9.CheckScriptFailure(lines, 'E1203: Dot not allowed after a number: 
n.key = 3')
   let lines =<< trim END
     var n = 0
     n.key = 3
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 07afadb0c..3a187774e 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1278,7 +1278,7 @@ def Test_assignment_dict()
     var n: any
     n.key = 5
   END
-  v9.CheckDefExecAndScriptFailure(lines, ['E1148:', 'E1203: Dot can only be 
used on a dictionary: n.key = 5'], 2)
+  v9.CheckDefExecAndScriptFailure(lines, ['E1148:', 'E1203: Dot not allowed 
after a number: n.key = 5'], 2)
 enddef
 
 def Test_assignment_local()
diff --git a/src/version.c b/src/version.c
index 441acfd12..5b919069c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2012,
 /**/
     2011,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1qqeuG-00196k-ML%40256bit.org.

Raspunde prin e-mail lui