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;