Mercurial > vim
diff src/evalvars.c @ 22415:1cefe1c013ac v8.2.1756
patch 8.2.1756: Vim9: :let will soon be disallowed
Commit: https://github.com/vim/vim/commit/cfcd011fcd8021da52fba62dabf7a2497f1879b7
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Sep 27 15:19:27 2020 +0200
patch 8.2.1756: Vim9: :let will soon be disallowed
Problem: Vim9: :let will soon be disallowed.
Solution: Add v:disallow_let temporarily. Fix tests.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 27 Sep 2020 15:30:04 +0200 |
parents | 66d1131a7eff |
children | 5e95de50ddd2 |
line wrap: on
line diff
--- a/src/evalvars.c +++ b/src/evalvars.c @@ -146,6 +146,7 @@ static struct vimvar {VV_NAME("echospace", VAR_NUMBER), VV_RO}, {VV_NAME("argv", VAR_LIST), VV_RO}, {VV_NAME("collate", VAR_STRING), VV_RO}, + {VV_NAME("disallow_let", VAR_NUMBER), 0}, // TODO: remove }; // shorthand @@ -734,6 +735,12 @@ ex_let(exarg_T *eap) ex_finally(eap); return; } + if (get_vim_var_nr(VV_DISALLOW_LET) + && eap->cmdidx == CMD_let && vim9script) + { + emsg(_(e_cannot_use_let_in_vim9_script)); + return; + } if (eap->cmdidx == CMD_const && !vim9script && !eap->forceit) // In legacy Vim script ":const" works like ":final". eap->cmdidx = CMD_final;