Mercurial > vim
changeset 33527:9dee279ce1c4 v9.0.2012
patch 9.0.2012: Vim9: error message can be more accurate
Commit: https://github.com/vim/vim/commit/f8da32461969a657ce9f132f35ddbec4068d3296
Author: Ernie Rael <errael@raelity.com>
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 <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 11 Oct 2023 21:30:08 +0200 |
parents | 98b41f1adbc1 |
children | f0194c09529a |
files | src/errors.h src/eval.c src/testdir/test_listdict.vim src/testdir/test_vim9_assign.vim src/version.c |
diffstat | 5 files changed, 13 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/errors.h +++ b/src/errors.h @@ -1771,8 +1771,8 @@ EXTERN char e_less_targets_than_list_ite 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_faile #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'"));
--- 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; }
--- 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
--- 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()