patch 8.2.1395: Vim9: no error if declaring a funcref with lower case letter
Problem: Vim9: no error if declaring a funcref with a lower case letter.
Solution: Check the name after the type is inferred. Fix confusing name.
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 04681fe..0664124 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -5515,7 +5515,8 @@
}
// new local variable
- if (type->tt_type == VAR_FUNC && var_check_func_name(name, TRUE))
+ if ((type->tt_type == VAR_FUNC || type->tt_type == VAR_PARTIAL)
+ && var_wrong_func_name(name, TRUE))
goto theend;
lvar = reserve_local(cctx, var_start, varlen,
cmdidx == CMD_const, type);
@@ -5624,6 +5625,12 @@
emsg(_(e_cannot_use_void));
goto theend;
}
+ else if ((stacktype->tt_type == VAR_FUNC
+ || stacktype->tt_type == VAR_PARTIAL)
+ && var_wrong_func_name(name, TRUE))
+ {
+ goto theend;
+ }
else
{
// An empty list or dict has a &t_void member,