From 1a71d31bf34b0b2b08517903826004ec6fd440e5 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Thu, 15 Jul 2021 12:49:58 +0200 Subject: patch 8.2.3162: Vim9: argument types are not checked at compile time Problem: Vim9: argument types are not checked at compile time. Solution: Add more type checks. (Yegappan Lakshmanan, closes #8560) --- src/testing.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/testing.c') diff --git a/src/testing.c b/src/testing.c index 80596d44bc..42030d726d 100644 --- a/src/testing.c +++ b/src/testing.c @@ -340,10 +340,14 @@ assert_append_cmd_or_arg(garray_T *gap, typval_T *argvars, char_u *cmd) static int assert_beeps(typval_T *argvars, int no_beep) { - char_u *cmd = tv_get_string_chk(&argvars[0]); + char_u *cmd; garray_T ga; int ret = 0; + if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL) + return 0; + + cmd = tv_get_string_chk(&argvars[0]); called_vim_beep = FALSE; suppress_errthrow = TRUE; emsg_silent = FALSE; @@ -367,7 +371,7 @@ assert_beeps(typval_T *argvars, int no_beep) } /* - * "assert_beeps(cmd [, error])" function + * "assert_beeps(cmd)" function */ void f_assert_beeps(typval_T *argvars, typval_T *rettv) @@ -376,7 +380,7 @@ f_assert_beeps(typval_T *argvars, typval_T *rettv) } /* - * "assert_nobeep(cmd [, error])" function + * "assert_nobeep(cmd)" function */ void f_assert_nobeep(typval_T *argvars, typval_T *rettv) @@ -947,6 +951,11 @@ f_test_override(typval_T *argvars, typval_T *rettv UNUSED) int val; static int save_starting = -1; + if (in_vim9script() + && (check_for_string_arg(argvars, 0) == FAIL + || check_for_number_arg(argvars, 1) == FAIL)) + return; + if (argvars[0].v_type != VAR_STRING || (argvars[1].v_type) != VAR_NUMBER) emsg(_(e_invarg)); -- cgit v1.2.3