patch 8.2.2501: not always clear where an error is reported
Problem: Not always clear where an error is reported.
Solution: Add the where_T structure and pass it around. (closes #7796)
diff --git a/src/eval.c b/src/eval.c
index 8b942e8..aae6ee8 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1299,8 +1299,9 @@
char_u *endp,
typval_T *rettv,
int copy,
- int flags, // ASSIGN_CONST, ASSIGN_NO_DECL
- char_u *op)
+ int flags, // ASSIGN_CONST, ASSIGN_NO_DECL
+ char_u *op,
+ int var_idx) // index for "let [a, b] = list"
{
int cc;
listitem_T *ri;
@@ -1390,9 +1391,10 @@
else
{
if (lp->ll_type != NULL
- && check_typval_type(lp->ll_type, rettv, 0) == FAIL)
+ && check_typval_arg_type(lp->ll_type, rettv, 0) == FAIL)
return;
- set_var_const(lp->ll_name, lp->ll_type, rettv, copy, flags);
+ set_var_const(lp->ll_name, lp->ll_type, rettv, copy,
+ flags, var_idx);
}
*endp = cc;
}
@@ -1471,7 +1473,7 @@
}
if (lp->ll_valtype != NULL
- && check_typval_type(lp->ll_valtype, rettv, 0) == FAIL)
+ && check_typval_arg_type(lp->ll_valtype, rettv, 0) == FAIL)
return;
if (lp->ll_newkey != NULL)