diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 4a020c9afa..772b52ab97 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -203,6 +203,15 @@ def Test_global_local_function() assert_equal('local', Func()) END CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + def g:Funcy() + echo 'funcy' + enddef + s:Funcy() + END + CheckScriptFailure(lines, 'E117:') enddef func TakesOneArg(arg) diff --git a/src/userfunc.c b/src/userfunc.c index f38c978f4e..9ab5ffe525 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -2132,8 +2132,8 @@ call_func( char_u *p = untrans_function_name(rfname); // If using Vim9 script try not local to the script. - // TODO: should not do this if the name started with "s:". - if (p != NULL) + // Don't do this if the name starts with "s:". + if (p != NULL && (funcname[0] != 's' || funcname[1] != ':')) fp = find_func(p, is_global, NULL); } diff --git a/src/version.c b/src/version.c index 8ebd3e0adb..f6257b58a8 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1423, /**/ 1422, /**/