# HG changeset patch # User Bram Moolenaar # Date 1590091203 -7200 # Node ID 7fb80f486aadd3d9e2fff1b96c46e58a8ede40ac # Parent 34d4df8db24ca9e4a3d18ecac5eefef39be188b2 patch 8.2.0806: using "func!" after vim9script gives confusing error Commit: https://github.com/vim/vim/commit/74fae513f8032cfa9e129eedc33454f0bf68668b Author: Bram Moolenaar Date: Thu May 21 21:50:58 2020 +0200 patch 8.2.0806: using "func!" after vim9script gives confusing error Problem: using "func!" after vim9script gives confusing error. Solution: Give E477. (closes https://github.com/vim/vim/issues/6107) diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -136,7 +136,7 @@ def Test_assignment_dict() let dict2: dict = #{one: 1, two: 2} let dict3: dict = #{key: 'value'} let dict4: dict = #{one: 1, two: '2'} - let dict5: dict = #{one: 0z01, tw: 0z02} + let dict5: dict = #{one: 0z01, two: 0z02} call CheckDefExecFailure(['let dd = {}', 'dd[""] = 6'], 'E713:') @@ -1721,6 +1721,11 @@ def Test_vim9_comment_not_compiled() 'dsearch /pat/#comment', 'bwipe!', ], 'E488:') + + CheckScriptFailure([ + 'vim9script', + 'func! SomeFunc()', + ], 'E477:') enddef def Test_finish() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 806, +/**/ 805, /**/ 804, diff --git a/src/vim9script.c b/src/vim9script.c --- a/src/vim9script.c +++ b/src/vim9script.c @@ -84,6 +84,12 @@ ex_vim9script(exarg_T *eap) { int lnum_start = SOURCING_LNUM - 1; + if (*p == '!') + { + emsg(_(e_nobang)); + break; + } + // Handle :function and :def by calling def_function(). // It will read upto the matching :endded or :endfunction. eap->cmdidx = *line == 'f' ? CMD_function : CMD_def;