Mercurial > vim
comparison src/quickfix.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 | 5127844b909b |
children | 078edc1821bf |
comparison
equal
deleted
inserted
replaced
25301:fe178301fc04 | 25302:4d3c68196d05 |
---|---|
8464 { | 8464 { |
8465 win_T *win; | 8465 win_T *win; |
8466 | 8466 |
8467 rettv->vval.v_number = -1; | 8467 rettv->vval.v_number = -1; |
8468 | 8468 |
8469 if (in_vim9script() | |
8470 && (check_for_number_arg(argvars, 0) == FAIL | |
8471 || check_for_list_arg(argvars, 1) == FAIL | |
8472 || check_for_opt_string_arg(argvars, 2) == FAIL | |
8473 || (argvars[2].v_type != VAR_UNKNOWN | |
8474 && check_for_opt_dict_arg(argvars, 3) == FAIL))) | |
8475 return; | |
8476 | |
8469 win = find_win_by_nr_or_id(&argvars[0]); | 8477 win = find_win_by_nr_or_id(&argvars[0]); |
8470 if (win != NULL) | 8478 if (win != NULL) |
8471 set_qf_ll_list(win, &argvars[1], &argvars[2], &argvars[3], rettv); | 8479 set_qf_ll_list(win, &argvars[1], &argvars[2], &argvars[3], rettv); |
8472 } | 8480 } |
8473 | 8481 |
8475 * "setqflist()" function | 8483 * "setqflist()" function |
8476 */ | 8484 */ |
8477 void | 8485 void |
8478 f_setqflist(typval_T *argvars, typval_T *rettv) | 8486 f_setqflist(typval_T *argvars, typval_T *rettv) |
8479 { | 8487 { |
8488 if (in_vim9script() | |
8489 && (check_for_list_arg(argvars, 0) == FAIL | |
8490 || check_for_opt_string_arg(argvars, 1) == FAIL | |
8491 || (argvars[1].v_type != VAR_UNKNOWN | |
8492 && check_for_opt_dict_arg(argvars, 2) == FAIL))) | |
8493 return; | |
8494 | |
8480 set_qf_ll_list(NULL, &argvars[0], &argvars[1], &argvars[2], rettv); | 8495 set_qf_ll_list(NULL, &argvars[0], &argvars[1], &argvars[2], rettv); |
8481 } | 8496 } |
8482 #endif | 8497 #endif |