patch 8.2.3188: 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, also at runtime. (Yegappan
Lakshmanan, closes #8587)
diff --git a/src/testing.c b/src/testing.c
index 42030d7..5b2f7af 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -1246,15 +1246,12 @@
int repeated_click;
int_u mods;
- if (argvars[0].v_type != VAR_NUMBER
- || (argvars[1].v_type) != VAR_NUMBER
- || (argvars[2].v_type) != VAR_NUMBER
- || (argvars[3].v_type) != VAR_NUMBER
- || (argvars[4].v_type) != VAR_NUMBER)
- {
- emsg(_(e_invarg));
+ if (check_for_number_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
+ || check_for_number_arg(argvars, 4) == FAIL)
return;
- }
button = tv_get_number(&argvars[0]);
row = tv_get_number(&argvars[1]);