comparison src/testing.c @ 25356:1cde96e768e4 v8.2.3215

patch 8.2.3215: Vim9: argument types are not checked at compile time Commit: https://github.com/vim/vim/commit/5bca906b307728fa74a112914dc55b424d512d39 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sat Jul 24 21:33:26 2021 +0200 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)
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Jul 2021 21:45:04 +0200
parents 4d3c68196d05
children 1ffa8eb30353
comparison
equal deleted inserted replaced
25355:efef27c0f8a0 25356:1cde96e768e4
1191 char_u *which; 1191 char_u *which;
1192 long value; 1192 long value;
1193 int dragging; 1193 int dragging;
1194 scrollbar_T *sb = NULL; 1194 scrollbar_T *sb = NULL;
1195 1195
1196 if (check_for_string_arg(argvars, 0) == FAIL
1197 || check_for_number_arg(argvars, 1) == FAIL
1198 || check_for_number_arg(argvars, 2) == FAIL)
1199 return;
1200
1196 if (argvars[0].v_type != VAR_STRING 1201 if (argvars[0].v_type != VAR_STRING
1197 || (argvars[1].v_type) != VAR_NUMBER 1202 || (argvars[1].v_type) != VAR_NUMBER
1198 || (argvars[2].v_type) != VAR_NUMBER) 1203 || (argvars[2].v_type) != VAR_NUMBER)
1199 { 1204 {
1200 emsg(_(e_invarg)); 1205 emsg(_(e_invarg));
1279 char_u **fnames; 1284 char_u **fnames;
1280 int count = 0; 1285 int count = 0;
1281 list_T *l; 1286 list_T *l;
1282 listitem_T *li; 1287 listitem_T *li;
1283 1288
1284 if (argvars[0].v_type != VAR_LIST 1289 if (check_for_list_arg(argvars, 0) == FAIL
1285 || (argvars[1].v_type) != VAR_NUMBER 1290 || check_for_number_arg(argvars, 1) == FAIL
1286 || (argvars[2].v_type) != VAR_NUMBER 1291 || check_for_number_arg(argvars, 2) == FAIL
1287 || (argvars[3].v_type) != VAR_NUMBER) 1292 || check_for_number_arg(argvars, 3) == FAIL)
1288 {
1289 emsg(_(e_invarg));
1290 return; 1293 return;
1291 }
1292 1294
1293 row = tv_get_number(&argvars[1]); 1295 row = tv_get_number(&argvars[1]);
1294 col = tv_get_number(&argvars[2]); 1296 col = tv_get_number(&argvars[2]);
1295 mods = tv_get_number(&argvars[3]); 1297 mods = tv_get_number(&argvars[3]);
1296 1298