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