patch 8.2.3650: Vim9: for loop variable can be a list member
Problem: Vim9: for loop variable can be a list member.
Solution: Check for valid variable name. (closes #9179)
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 303b1e3..934f41b 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -8220,8 +8220,8 @@
for (idx = 0; idx < var_count; ++idx)
{
assign_dest_T dest = dest_local;
- int opt_flags = 0;
- int vimvaridx = -1;
+ int opt_flags = 0;
+ int vimvaridx = -1;
type_T *type = &t_any;
type_T *lhs_type = &t_any;
where_T where = WHERE_INIT;
@@ -8255,6 +8255,8 @@
}
else
{
+ if (!valid_varname(arg, varlen, FALSE))
+ goto failed;
if (lookup_local(arg, varlen, NULL, cctx) == OK)
{
semsg(_(e_variable_already_declared), arg);