summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-02-06 17:30:41 +0000
committerBram Moolenaar <Bram@vim.org>2022-02-06 17:30:41 +0000
commit107f7325f615a1ffa5b49521e316b44e117b0a04 (patch)
treed5acc8eeaa2ad3bb1abc59dd9e5df0f18d7e6107
parent160afdb1850b8cf56dc8e94acee7a04bc2113992 (diff)
patch 8.2.4312: no error for using :vim9script in a :def functionv8.2.4312
Problem: No error for using :vim9script in a :def function. Solution: Give an error when compiling.
-rw-r--r--src/testdir/test_vim9_script.vim1
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c4
3 files changed, 7 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 28dd78b0e6..4fa71d94de 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -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()
diff --git a/src/version.c b/src/version.c
index 2342462a0f..825f12da3d 100644
--- 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 */
/**/
+ 4312,
+/**/
4311,
/**/
4310,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 9dbd1198dd..0bf47e24d9 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -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;