1
0
forked from aniani/vim

patch 9.0.1559: function argument types not always checked

Problem:    Function argument types not always checked and using v:none may
            cause an error.
Solution:   Check argument types once the function type is known.  Do not give
            an error for using v:none as an argument. (closes #12200)
This commit is contained in:
Bram Moolenaar
2023-05-15 16:22:38 +01:00
parent a2c0028fdf
commit 2ba51236fb
4 changed files with 89 additions and 12 deletions

View File

@@ -970,7 +970,10 @@ check_argument_types(
}
else
expected = type->tt_args[i];
if (check_typval_arg_type(expected, tv, NULL, i + 1) == FAIL)
// check the type, unless the value is v:none
if ((tv->v_type != VAR_SPECIAL || tv->vval.v_number != VVAL_NONE)
&& check_typval_arg_type(expected, tv, NULL, i + 1) == FAIL)
return FAIL;
}
return OK;