Mercurial > vim
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 |