Skip to content

Commit

Permalink
patch 8.2.4163: no error for omitting function name after autoload pr…
Browse files Browse the repository at this point in the history
…efix

Problem:    No error for omitting function name after autoload prefix.
Solution:   Check for missing function name. (issue #9577)
  • Loading branch information
brammool committed Jan 20, 2022
1 parent 9c7cae6 commit 2017d6f
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
15 changes: 15 additions & 0 deletions src/testdir/test_vim9_import.vim
Original file line number Diff line number Diff line change
Expand Up @@ -1514,6 +1514,21 @@ def Test_vim9script_autoload_duplicate()
delete('Xdir', 'rf')
enddef

def Test_autoload_missing_function_name()
mkdir('Xdir/autoload', 'p')

var lines =<< trim END
vim9script

def loadme#()
enddef
END
writefile(lines, 'Xdir/autoload/loadme.vim')
assert_fails('source Xdir/autoload/loadme.vim', 'E129:')

delete('Xdir', 'rf')
enddef

def Test_import_autoload_postponed()
mkdir('Xdir/autoload', 'p')
var save_rtp = &rtp
Expand Down
3 changes: 2 additions & 1 deletion src/userfunc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3693,7 +3693,8 @@ trans_function_name(
// Note that TFN_ flags use the same values as GLV_ flags.
end = get_lval(start, NULL, &lv, FALSE, skip, flags | GLV_READ_ONLY,
lead > 2 ? 0 : FNE_CHECK_START);
if (end == start)
if (end == start
|| (end != NULL && end[-1] == AUTOLOAD_CHAR && *end == '('))
{
if (!skip)
emsg(_(e_function_name_required));
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4163,
/**/
4162,
/**/
Expand Down

0 comments on commit 2017d6f

Please sign in to comment.