0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

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.
This commit is contained in:
Bram Moolenaar
2020-08-08 15:46:01 +02:00
parent 2dd0a2c39a
commit 98b4f145eb
8 changed files with 20 additions and 10 deletions

View File

@@ -5515,7 +5515,8 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx)
}
// 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 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx)
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,