mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.2918: builtin function can be shadowed by global variable
Problem: Builtin function can be shadowed by global variable.
Solution: Check for builtin function before variable. (Yasuhiro Matsumoto,
closes vim/vim#8302)
3d9c4eefe6
Cherry-pick Test_gettext() from patch 8.2.2886.
This commit is contained in:
parent
dc17df3190
commit
7683199a9b
@ -1760,6 +1760,13 @@ void set_var_lval(lval_T *lp, char *endp, typval_T *rettv, int copy, const bool
|
||||
semsg(_(e_dictkey), lp->ll_newkey);
|
||||
return;
|
||||
}
|
||||
if ((lp->ll_tv->vval.v_dict == &globvardict
|
||||
// || lp->ll_tv->vval.v_dict == &SCRIPT_ITEM(current_sctx.sc_sid)->sn_vars->sv_dict
|
||||
)
|
||||
&& (rettv->v_type == VAR_FUNC || rettv->v_type == VAR_PARTIAL)
|
||||
&& var_wrong_func_name(lp->ll_newkey, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Need to add an item to the Dictionary.
|
||||
di = tv_dict_item_alloc((const char *)lp->ll_newkey);
|
||||
|
@ -2478,4 +2478,17 @@ func Test_default_arg_value()
|
||||
call assert_equal('msg', HasDefault())
|
||||
endfunc
|
||||
|
||||
" Test for gettext()
|
||||
func Test_gettext()
|
||||
call assert_fails('call gettext(1)', 'E475:')
|
||||
endfunc
|
||||
|
||||
func Test_builtin_check()
|
||||
call assert_fails('let g:["trim"] = {x -> " " .. x}', 'E704:')
|
||||
call assert_fails('let g:.trim = {x -> " " .. x}', 'E704:')
|
||||
call assert_fails('let s:["trim"] = {x -> " " .. x}', 'E704:')
|
||||
call assert_fails('let s:.trim = {x -> " " .. x}', 'E704:')
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
Loading…
Reference in New Issue
Block a user