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)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index a0c5e49..38766e3 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -4210,6 +4210,25 @@
unlet g:mydict
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()
# this was reading the byte after the end of the line
var lines =<< trim END
diff --git a/src/userfunc.c b/src/userfunc.c
index 0f194d5..92b5203 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -2095,7 +2095,8 @@
{
return ufunc->uf_name[0] != K_SPECIAL
&& (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]);
}
/*
diff --git a/src/version.c b/src/version.c
index 8475d7e..5bc3ba5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 630,
+/**/
629,
/**/
628,