comparison src/vim9compile.c @ 21691:f41c646cb8b9 v8.2.1395

patch 8.2.1395: Vim9: no error if declaring a funcref with lower case letter Commit: https://github.com/vim/vim/commit/98b4f145eb89405021e23a4a37db51d60a75a1d0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 8 15:46:01 2020 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 08 Aug 2020 16:00:04 +0200
parents 10866fd07595
children 4e4fd845553d
comparison
equal deleted inserted replaced
21690:0d43ab8ae99d 21691:f41c646cb8b9
5513 name); 5513 name);
5514 goto theend; 5514 goto theend;
5515 } 5515 }
5516 5516
5517 // new local variable 5517 // new local variable
5518 if (type->tt_type == VAR_FUNC && var_check_func_name(name, TRUE)) 5518 if ((type->tt_type == VAR_FUNC || type->tt_type == VAR_PARTIAL)
5519 && var_wrong_func_name(name, TRUE))
5519 goto theend; 5520 goto theend;
5520 lvar = reserve_local(cctx, var_start, varlen, 5521 lvar = reserve_local(cctx, var_start, varlen,
5521 cmdidx == CMD_const, type); 5522 cmdidx == CMD_const, type);
5522 if (lvar == NULL) 5523 if (lvar == NULL)
5523 goto theend; 5524 goto theend;
5620 if (new_local && !has_type) 5621 if (new_local && !has_type)
5621 { 5622 {
5622 if (stacktype->tt_type == VAR_VOID) 5623 if (stacktype->tt_type == VAR_VOID)
5623 { 5624 {
5624 emsg(_(e_cannot_use_void)); 5625 emsg(_(e_cannot_use_void));
5626 goto theend;
5627 }
5628 else if ((stacktype->tt_type == VAR_FUNC
5629 || stacktype->tt_type == VAR_PARTIAL)
5630 && var_wrong_func_name(name, TRUE))
5631 {
5625 goto theend; 5632 goto theend;
5626 } 5633 }
5627 else 5634 else
5628 { 5635 {
5629 // An empty list or dict has a &t_void member, 5636 // An empty list or dict has a &t_void member,