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:
committed by
Bram Moolenaar
parent
5d7c2df536
commit
4490ec4e83
@@ -1271,6 +1271,9 @@ f_argc(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
if (in_vim9script() && check_for_opt_number_arg(argvars, 0) == FAIL)
|
||||
return;
|
||||
|
||||
if (argvars[0].v_type == VAR_UNKNOWN)
|
||||
// use the current window
|
||||
rettv->vval.v_number = ARGCOUNT;
|
||||
@@ -1306,6 +1309,12 @@ f_arglistid(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
win_T *wp;
|
||||
|
||||
if (in_vim9script()
|
||||
&& (check_for_opt_number_arg(argvars, 0) == FAIL
|
||||
|| (argvars[0].v_type != VAR_UNKNOWN
|
||||
&& check_for_opt_number_arg(argvars, 1) == FAIL)))
|
||||
return;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
wp = find_tabwin(&argvars[0], &argvars[1], NULL);
|
||||
if (wp != NULL)
|
||||
@@ -1336,6 +1345,12 @@ f_argv(typval_T *argvars, typval_T *rettv)
|
||||
aentry_T *arglist = NULL;
|
||||
int argcount = -1;
|
||||
|
||||
if (in_vim9script()
|
||||
&& (check_for_opt_number_arg(argvars, 0) == FAIL
|
||||
|| (argvars[0].v_type != VAR_UNKNOWN
|
||||
&& check_for_opt_number_arg(argvars, 1) == FAIL)))
|
||||
return;
|
||||
|
||||
if (argvars[0].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[1].v_type == VAR_UNKNOWN)
|
||||
|
Reference in New Issue
Block a user