1
0
forked from aniani/vim

patch 8.2.3948: Vim9: failure with partial with unknown argument count

Problem:    Vim9: failure with partial with unknown argument count.
Solution:   Do not copy argument types if there aren't any.
This commit is contained in:
Bram Moolenaar
2021-12-30 13:59:20 +00:00
parent f38aad85cf
commit cfe3af284a
2 changed files with 14 additions and 9 deletions

View File

@@ -749,6 +749,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3948,
/**/
3947,
/**/

View File

@@ -369,19 +369,22 @@ typval2type_int(typval_T *tv, int copyID, garray_T *type_gap, int do_member)
if (type == NULL)
return NULL;
*type = *ufunc->uf_func_type;
type->tt_argcount -= tv->vval.v_partial->pt_argc;
type->tt_min_argcount -= tv->vval.v_partial->pt_argc;
if (type->tt_argcount == 0)
type->tt_args = NULL;
else
if (type->tt_argcount >= 0)
{
int i;
type->tt_argcount -= tv->vval.v_partial->pt_argc;
type->tt_min_argcount -= tv->vval.v_partial->pt_argc;
if (type->tt_argcount == 0)
type->tt_args = NULL;
else
{
int i;
func_type_add_arg_types(type, type->tt_argcount,
func_type_add_arg_types(type, type->tt_argcount,
type_gap);
for (i = 0; i < type->tt_argcount; ++i)
type->tt_args[i] = ufunc->uf_func_type->tt_args[
for (i = 0; i < type->tt_argcount; ++i)
type->tt_args[i] = ufunc->uf_func_type->tt_args[
i + tv->vval.v_partial->pt_argc];
}
}
return type;
}