mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 17:36:29 +00:00
vim-patch:9.0.0335: checks for Dictionary argument often give a vague error (#23309)
Problem: Checks for Dictionary argument often give a vague error message.
Solution: Give a useful error message. (Yegappan Lakshmanan, closes vim/vim#11009)
04c4c5746e
Cherry-pick removal of E922 from docs from patch 9.0.1403.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
@@ -2017,8 +2017,7 @@ void f_sign_define(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||
return;
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN && argvars[1].v_type != VAR_DICT) {
|
||||
emsg(_(e_dictreq));
|
||||
if (tv_check_for_opt_dict_arg(argvars, 1) == FAIL) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2061,12 +2060,10 @@ void f_sign_getplaced(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN) {
|
||||
dict_T *dict;
|
||||
if (argvars[1].v_type != VAR_DICT
|
||||
|| ((dict = argvars[1].vval.v_dict) == NULL)) {
|
||||
emsg(_(e_dictreq));
|
||||
if (tv_check_for_nonnull_dict_arg(argvars, 1) == FAIL) {
|
||||
return;
|
||||
}
|
||||
dict_T *dict = argvars[1].vval.v_dict;
|
||||
if ((di = tv_dict_find(dict, "lnum", -1)) != NULL) {
|
||||
// get signs placed at this line
|
||||
lnum = (linenr_T)tv_get_number_chk(&di->di_tv, ¬anum);
|
||||
@@ -2263,11 +2260,11 @@ void f_sign_place(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
|
||||
if (argvars[4].v_type != VAR_UNKNOWN
|
||||
&& (argvars[4].v_type != VAR_DICT
|
||||
|| ((dict = argvars[4].vval.v_dict) == NULL))) {
|
||||
emsg(_(e_dictreq));
|
||||
return;
|
||||
if (argvars[4].v_type != VAR_UNKNOWN) {
|
||||
if (tv_check_for_nonnull_dict_arg(argvars, 4) == FAIL) {
|
||||
return;
|
||||
}
|
||||
dict = argvars[4].vval.v_dict;
|
||||
}
|
||||
|
||||
rettv->vval.v_number = sign_place_from_dict(&argvars[0], &argvars[1], &argvars[2], &argvars[3],
|
||||
@@ -2415,8 +2412,7 @@ void f_sign_unplace(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||
}
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[1].v_type != VAR_DICT) {
|
||||
emsg(_(e_dictreq));
|
||||
if (tv_check_for_dict_arg(argvars, 1) == FAIL) {
|
||||
return;
|
||||
}
|
||||
dict = argvars[1].vval.v_dict;
|
||||
|
Reference in New Issue
Block a user