Mercurial > vim
diff src/evalvars.c @ 21905:2474c6b0c5de v8.2.1502
patch 8.2.1502: Vim9: can use += with a :let command at script level
Commit: https://github.com/vim/vim/commit/122616d9c1b57f1e1f29f1151f8e26d24df9092a
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 21 21:32:50 2020 +0200
patch 8.2.1502: Vim9: can use += with a :let command at script level
Problem: Vim9: can use += with a :let command at script level.
Solution: Give an error.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 21 Aug 2020 21:45:04 +0200 |
parents | 172b1746489c |
children | a211bca98bc3 |
line wrap: on
line diff
--- a/src/evalvars.c +++ b/src/evalvars.c @@ -786,7 +786,13 @@ ex_let(exarg_T *eap) op[1] = NUL; if (*expr != '=') { - if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) + if (vim9script && (flags & LET_NO_COMMAND) == 0) + { + // +=, /=, etc. require an existing variable + semsg(_(e_cannot_use_operator_on_new_variable), eap->arg); + i = FAIL; + } + else if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) { op[0] = *expr; // +=, -=, *=, /=, %= or .= ++len;