if (li != NULL)
{
n = tv_get_number_chk(&li->li_tv, &error);
+ if (error)
+ return; // type error; errmsg already given
for (;;)
{
li = li->li_next;
if (li == NULL)
break;
i = tv_get_number_chk(&li->li_tv, &error);
+ if (error)
+ return; // type error; errmsg already given
if (domax ? i > n : i < n)
n = i;
}
{
--todo;
i = tv_get_number_chk(&HI2DI(hi)->di_tv, &error);
+ if (error)
+ return; // type error; errmsg already given
if (first)
{
n = i;
}
else
semsg(_(e_listdictarg), domax ? "max()" : "min()");
- rettv->vval.v_number = error ? 0 : n;
+
+ rettv->vval.v_number = n;
}
/*
call assert_fails('call max(1)', 'E712:')
call assert_fails('call max(v:none)', 'E712:')
+
+ " check we only get one error
+ call assert_fails('call max([#{}, [1]])', ['E728:', 'E728:'])
+ call assert_fails('call max(#{a: {}, b: [1]})', ['E728:', 'E728:'])
endfunc
func Test_min()
call assert_fails('call min(1)', 'E712:')
call assert_fails('call min(v:none)', 'E712:')
+
+ " check we only get one error
+ call assert_fails('call min([[1], #{}])', ['E745:', 'E745:'])
+ call assert_fails('call min(#{a: [1], b: #{}})', ['E745:', 'E745:'])
endfunc
func Test_strwidth()