Mercurial > vim
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, |