comparison src/dict.c @ 25302:4d3c68196d05 v8.2.3188

patch 8.2.3188: Vim9: argument types are not checked at compile time Commit: https://github.com/vim/vim/commit/83494b4ac61898f687d6ef9dce4bad5802fb8e51 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Tue Jul 20 17:51:51 2021 +0200 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)
author Bram Moolenaar <Bram@vim.org>
date Tue, 20 Jul 2021 18:00:06 +0200
parents 29ed95687f74
children cfbf40f749b0
comparison
equal deleted inserted replaced
25301:fe178301fc04 25302:4d3c68196d05
1338 { 1338 {
1339 dict_T *d; 1339 dict_T *d;
1340 char_u *key; 1340 char_u *key;
1341 dictitem_T *di; 1341 dictitem_T *di;
1342 1342
1343 if (in_vim9script()
1344 && (check_for_dict_arg(argvars, 0) == FAIL
1345 || check_for_string_or_number_arg(argvars, 1) == FAIL))
1346 return;
1347
1343 if (argvars[2].v_type != VAR_UNKNOWN) 1348 if (argvars[2].v_type != VAR_UNKNOWN)
1344 semsg(_(e_toomanyarg), "remove()"); 1349 semsg(_(e_toomanyarg), "remove()");
1345 else if ((d = argvars[0].vval.v_dict) != NULL 1350 else if ((d = argvars[0].vval.v_dict) != NULL
1346 && !value_check_lock(d->dv_lock, arg_errmsg, TRUE)) 1351 && !value_check_lock(d->dv_lock, arg_errmsg, TRUE))
1347 { 1352 {