0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -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

@@ -2406,6 +2406,10 @@ f_digraph_get(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL; // Return empty string for failure
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
return;
digraphs = tv_get_string_chk(&argvars[0]);
if (digraphs == NULL)
@@ -2439,6 +2443,9 @@ f_digraph_getlist(typval_T *argvars, typval_T *rettv)
# ifdef FEAT_DIGRAPHS
int flag_list_all;
if (in_vim9script() && check_for_opt_number_arg(argvars, 0) == FAIL)
return;
if (argvars[0].v_type == VAR_UNKNOWN)
flag_list_all = FALSE;
else
@@ -2466,6 +2473,11 @@ f_digraph_set(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_BOOL;
rettv->vval.v_number = VVAL_FALSE;
if (in_vim9script()
&& (check_for_string_arg(argvars, 0) == FAIL
|| check_for_number_arg(argvars, 1) == FAIL))
return;
if (!digraph_set_common(&argvars[0], &argvars[1]))
return;