From 5bca906b307728fa74a112914dc55b424d512d39 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 24 Jul 2021 21:33:26 +0200 Subject: patch 8.2.3215: Vim9: argument types are not checked at compile time Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks. Sort the argument lists. (Yegappan Lakshmanan, closes #8626) --- src/testing.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/testing.c') diff --git a/src/testing.c b/src/testing.c index 5b2f7af13..9f3c29422 100644 --- a/src/testing.c +++ b/src/testing.c @@ -1193,6 +1193,11 @@ f_test_scrollbar(typval_T *argvars, typval_T *rettv UNUSED) int dragging; scrollbar_T *sb = NULL; + if (check_for_string_arg(argvars, 0) == FAIL + || check_for_number_arg(argvars, 1) == FAIL + || check_for_number_arg(argvars, 2) == FAIL) + return; + if (argvars[0].v_type != VAR_STRING || (argvars[1].v_type) != VAR_NUMBER || (argvars[2].v_type) != VAR_NUMBER) @@ -1281,14 +1286,11 @@ f_test_gui_drop_files(typval_T *argvars UNUSED, typval_T *rettv UNUSED) list_T *l; listitem_T *li; - if (argvars[0].v_type != VAR_LIST - || (argvars[1].v_type) != VAR_NUMBER - || (argvars[2].v_type) != VAR_NUMBER - || (argvars[3].v_type) != VAR_NUMBER) - { - emsg(_(e_invarg)); + if (check_for_list_arg(argvars, 0) == FAIL + || check_for_number_arg(argvars, 1) == FAIL + || check_for_number_arg(argvars, 2) == FAIL + || check_for_number_arg(argvars, 3) == FAIL) return; - } row = tv_get_number(&argvars[1]); col = tv_get_number(&argvars[2]); -- cgit v1.2.1