diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-04-01 15:26:58 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-04-01 15:26:58 +0100 |
commit | 22ebd172e48ba060c8a7bae3dbf6480b7596d937 (patch) | |
tree | ff1a418ba71300eaf1ddd85e37e682b16ade4958 /src/evalvars.c | |
parent | ffe6e646dc6aede3bce062e40256ce0edc64bc08 (diff) | |
download | vim-git-22ebd172e48ba060c8a7bae3dbf6480b7596d937.tar.gz |
patch 8.2.4662: no error for using out of range list indexv8.2.4662
Problem: No error for using out of range list index.
Solution: Check list index at script level like in compiled function.
(closes #10051)
Diffstat (limited to 'src/evalvars.c')
-rw-r--r-- | src/evalvars.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/evalvars.c b/src/evalvars.c index 202ada191..dd70427d3 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -1647,13 +1647,15 @@ ex_let_one( { lval_T lv; char_u *p; + int lval_flags = (flags & (ASSIGN_NO_DECL | ASSIGN_DECL)) + ? GLV_NO_DECL : 0; + if (op != NULL && *op != '=') + lval_flags |= GLV_ASSIGN_WITH_OP; // ":let var = expr": Set internal variable. // ":let var: type = expr": Set internal variable with type. // ":let {expr} = expr": Idem, name made with curly braces - p = get_lval(arg, tv, &lv, FALSE, FALSE, - (flags & (ASSIGN_NO_DECL | ASSIGN_DECL)) - ? GLV_NO_DECL : 0, FNE_CHECK_START); + p = get_lval(arg, tv, &lv, FALSE, FALSE, lval_flags, FNE_CHECK_START); if (p != NULL && lv.ll_name != NULL) { if (endchars != NULL && vim_strchr(endchars, |