Mercurial > vim
comparison 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 |
comparison
equal
deleted
inserted
replaced
21904:a0088959f40a | 21905:2474c6b0c5de |
---|---|
784 { | 784 { |
785 op[0] = '='; | 785 op[0] = '='; |
786 op[1] = NUL; | 786 op[1] = NUL; |
787 if (*expr != '=') | 787 if (*expr != '=') |
788 { | 788 { |
789 if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) | 789 if (vim9script && (flags & LET_NO_COMMAND) == 0) |
790 { | |
791 // +=, /=, etc. require an existing variable | |
792 semsg(_(e_cannot_use_operator_on_new_variable), eap->arg); | |
793 i = FAIL; | |
794 } | |
795 else if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) | |
790 { | 796 { |
791 op[0] = *expr; // +=, -=, *=, /=, %= or .= | 797 op[0] = *expr; // +=, -=, *=, /=, %= or .= |
792 ++len; | 798 ++len; |
793 if (expr[0] == '.' && expr[1] == '.') // ..= | 799 if (expr[0] == '.' && expr[1] == '.') // ..= |
794 { | 800 { |