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

patch 9.0.0630: in Vim9 script a numbered function cannot be called

Problem:    In Vim9 script a numbered function cannot be called.
Solution:   Do not require "g:" before a numbered function name.
            (closes #11254)
This commit is contained in:
Bram Moolenaar
2022-09-30 19:19:04 +01:00
parent a5d1a67bee
commit cfb4d4f312
3 changed files with 23 additions and 1 deletions

View File

@@ -4210,6 +4210,25 @@ def Test_numbered_function_reference()
unlet g:mydict unlet g:mydict
enddef enddef
def Test_numbered_function_call()
var lines =<< trim END
let s:legacyscript = {}
func s:legacyscript.Helper() abort
return "Success"
endfunc
let g:legacyscript = deepcopy(s:legacyscript)
let g:legacy_result = eval("g:legacyscript.Helper()")
vim9cmd g:vim9_result = eval("g:legacyscript.Helper()")
END
v9.CheckScriptSuccess(lines)
assert_equal('Success', g:legacy_result)
assert_equal('Success', g:vim9_result)
unlet g:legacy_result
unlet g:vim9_result
enddef
def Test_go_beyond_end_of_cmd() def Test_go_beyond_end_of_cmd()
# this was reading the byte after the end of the line # this was reading the byte after the end of the line
var lines =<< trim END var lines =<< trim END

View File

@@ -2095,7 +2095,8 @@ func_requires_g_prefix(ufunc_T *ufunc)
{ {
return ufunc->uf_name[0] != K_SPECIAL return ufunc->uf_name[0] != K_SPECIAL
&& (ufunc->uf_flags & FC_LAMBDA) == 0 && (ufunc->uf_flags & FC_LAMBDA) == 0
&& vim_strchr(ufunc->uf_name, AUTOLOAD_CHAR) == NULL; && vim_strchr(ufunc->uf_name, AUTOLOAD_CHAR) == NULL
&& !isdigit(ufunc->uf_name[0]);
} }
/* /*

View File

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