diff src/evalvars.c @ 27968:40c6e5f849dc v8.2.4509

patch 8.2.4509: Vim9: can declare a variable with ":va" Commit: https://github.com/vim/vim/commit/e1d1211799bc37c063666e97437cf4e9af4782b0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 5 11:37:48 2022 +0000 patch 8.2.4509: Vim9: can declare a variable with ":va" Problem: Vim9: can declare a variable with ":va". Solution: Disallow using ":va", require using ":var".
author Bram Moolenaar <Bram@vim.org>
date Sat, 05 Mar 2022 12:45:03 +0100
parents 80f398bfc19f
children 212c5894b8b1
line wrap: on
line diff
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -755,17 +755,24 @@ heredoc_get(exarg_T *eap, char_u *cmd, i
 ex_var(exarg_T *eap)
 {
     char_u *p = eap->cmd;
+    int	    has_var;
 
     if (!in_vim9script())
     {
 	semsg(_(e_str_cannot_be_used_in_legacy_vim_script), ":var");
 	return;
     }
-    if (current_sctx.sc_sid == 0 && checkforcmd_noparen(&p, "var", 3))
+    has_var = checkforcmd_noparen(&p, "var", 3);
+    if (current_sctx.sc_sid == 0 && has_var)
     {
 	emsg(_(e_cannot_declare_variable_on_command_line));
 	return;
     }
+    if (eap->arg > eap->cmd && !has_var)
+    {
+	emsg(_(e_must_use_var_instead_of_va));
+	return;
+    }
     ex_let(eap);
 }