0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 8.2.3229: Vim9: runtime and compile time type checks are not the same

Problem:    Vim9: runtime and compile time type checks are not the same.
Solution:   Add more runtime type checks for builtin functions. (Yegappan
            Lakshmanan, closes #8646)
This commit is contained in:
Yegappan Lakshmanan
2021-07-27 22:00:44 +02:00
committed by Bram Moolenaar
parent 5d7c2df536
commit 4490ec4e83
55 changed files with 1710 additions and 630 deletions

View File

@@ -4977,6 +4977,12 @@ f_iconv(typval_T *argvars UNUSED, typval_T *rettv)
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
if (in_vim9script()
&& (check_for_string_arg(argvars, 0) == FAIL
|| check_for_string_arg(argvars, 1) == FAIL
|| check_for_string_arg(argvars, 2) == FAIL))
return;
str = tv_get_string(&argvars[0]);
from = enc_canonize(enc_skip(tv_get_string_buf(&argvars[1], buf1)));
to = enc_canonize(enc_skip(tv_get_string_buf(&argvars[2], buf2)));
@@ -5505,6 +5511,9 @@ f_setcellwidths(typval_T *argvars, typval_T *rettv UNUSED)
listitem_T **ptrs;
cw_interval_T *table;
if (in_vim9script() && check_for_list_arg(argvars, 0) == FAIL)
return;
if (argvars[0].v_type != VAR_LIST || argvars[0].vval.v_list == NULL)
{
emsg(_(e_listreq));