0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 7.4.1645

Problem:    When a dict contains a partial it can't be redefined as a
            function. (Nikolai Pavlov)
Solution:   Remove the partial when overwriting with a function.
This commit is contained in:
Bram Moolenaar
2016-03-24 21:42:09 +01:00
parent 24c77a1e3a
commit c5fbe8af4c
3 changed files with 17 additions and 1 deletions

View File

@@ -23455,7 +23455,8 @@ ex_function(exarg_T *eap)
else
arg = fudi.fd_newkey;
if (arg != NULL && (fudi.fd_di == NULL
|| fudi.fd_di->di_tv.v_type != VAR_FUNC))
|| (fudi.fd_di->di_tv.v_type != VAR_FUNC
&& fudi.fd_di->di_tv.v_type != VAR_PARTIAL)))
{
if (*arg == K_SPECIAL)
j = 3;

View File

@@ -193,3 +193,16 @@ func Test_tostring()
call assert_true(v:false, v:exception)
endtry
endfunc
func Test_redefine_dict_func()
let d = {}
function d.test4()
endfunction
let d.test4 = d.test4
try
function! d.test4(name)
endfunction
catch
call assert_true(v:errmsg, v:exception)
endtry
endfunc

View File

@@ -748,6 +748,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1645,
/**/
1644,
/**/