]> granicus.if.org Git - vim/commitdiff
patch 8.2.4312: no error for using :vim9script in a :def function v8.2.4312
authorBram Moolenaar <Bram@vim.org>
Sun, 6 Feb 2022 17:30:41 +0000 (17:30 +0000)
committerBram Moolenaar <Bram@vim.org>
Sun, 6 Feb 2022 17:30:41 +0000 (17:30 +0000)
Problem:    No error for using :vim9script in a :def function.
Solution:   Give an error when compiling.

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

index 28dd78b0e60815d1cccc49db7e78e411d1e492b6..4fa71d94deefbdb0f5a7327e32290ffbe0619b27 100644 (file)
@@ -1227,6 +1227,7 @@ def Test_vim9script_fails()
   v9.CheckScriptFailure(['vim9script', 'const str = "asdf"', 'str = "xxx"'], 'E46:')
 
   assert_fails('vim9script', 'E1038:')
+  v9.CheckDefFailure(['vim9script'], 'E1038:')
 enddef
 
 def Test_script_var_shadows_function()
index 2342462a0fb535ceaa589270c8873bdcaf100d3a..825f12da3d7f644bcf40268ef0c203f009dbc82a 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4312,
 /**/
     4311,
 /**/
index 9dbd1198ddb93e8c1879accd9e904743d5e616fa..0bf47e24d98d2f0a5e594c33184081154070d0d8 100644 (file)
@@ -3138,6 +3138,10 @@ compile_def_function(
                        line = compile_script(line, &cctx);
                    break;
 
+           case CMD_vim9script:
+                   emsg(_(e_vim9script_can_only_be_used_in_script));
+                   goto erret;
+
            case CMD_global:
                    if (check_global_and_subst(ea.cmd, p) == FAIL)
                        goto erret;