]> granicus.if.org Git - vim/commitdiff
patch 8.2.0806: using "func!" after vim9script gives confusing error v8.2.0806
authorBram Moolenaar <Bram@vim.org>
Thu, 21 May 2020 19:50:58 +0000 (21:50 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 21 May 2020 19:50:58 +0000 (21:50 +0200)
Problem:    using "func!" after vim9script gives confusing error.
Solution:   Give E477. (closes #6107)

src/testdir/test_vim9_script.vim
src/version.c
src/vim9script.c

index 22166fcb90cdd3db704f1ef8f558d001816828d7..cc313285a5cff7b47f822ad13ff092467e0ca6b3 100644 (file)
@@ -136,7 +136,7 @@ def Test_assignment_dict()
   let dict2: dict<number> = #{one: 1, two: 2}
   let dict3: dict<string> = #{key: 'value'}
   let dict4: dict<any> = #{one: 1, two: '2'}
-  let dict5: dict<blob> = #{one: 0z01, tw: 0z02}
+  let dict5: dict<blob> = #{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()
index c112f7d47d4233ddc5603159cec2dbef7db8b60a..d36fa4a2a1151eeaec799f62bafd11cdbe2a4f09 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    806,
 /**/
     805,
 /**/
index e213d61f1da569139564e8498930b8acadeb3fbf..76650f89983697efd4b31192d83f8123c48453b3 100644 (file)
@@ -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;