summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-02-23 18:08:33 +0100
committerBram Moolenaar <Bram@vim.org>2020-02-23 18:08:33 +0100
commit750802b55c6edda4d3bc78c41ad0a25a3450a557 (patch)
treebbd7bf53ce2e50daa7af2520c28eabaab38677ce
parent8fb1b47a5e24892b23c3923a07d8a850d99b14b2 (diff)
downloadvim-git-750802b55c6edda4d3bc78c41ad0a25a3450a557.tar.gz
patch 8.2.0311: Vim9: insufficient script testsv8.2.0311
Problem: Vim9: insufficient script tests. Solution: Add tests. Free imports when re-using a script.
-rw-r--r--src/scriptfile.c3
-rw-r--r--src/testdir/test_vim9_script.vim22
-rw-r--r--src/version.c2
3 files changed, 27 insertions, 0 deletions
diff --git a/src/scriptfile.c b/src/scriptfile.c
index 09548d89b..9c644e2b0 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1284,6 +1284,9 @@ do_source(
di = HI2DI(hi);
di->di_flags |= DI_FLAGS_RELOAD;
}
+
+ // old imports are no longer valid
+ free_imports(sid);
}
else
{
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index a7bccec4e..1af897e06 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -333,8 +333,30 @@ def Test_vim9script()
delete('Ximport.vim')
delete('Xexport.vim')
+ " Check that in a Vim9 script 'cpo' is set to the Vim default.
+ set cpo&vi
+ let cpo_before = &cpo
+ let lines =<< trim END
+ vim9script
+ g:cpo_in_vim9script = &cpo
+ END
+ writefile(lines, 'Xvim9_script')
+ source Xvim9_script
+ assert_equal(cpo_before, &cpo)
+ set cpo&vim
+ assert_equal(&cpo, g:cpo_in_vim9script)
+ delete('Xvim9_script')
+enddef
+
+def Test_vim9script_fails()
CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')
+ CheckScriptFailure(['export let some = 123'], 'E1042:')
+ CheckScriptFailure(['vim9script', 'export let g:some'], 'E1044:')
+ CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
+
+ assert_fails('vim9script', 'E1038')
+ assert_fails('export something', 'E1042')
enddef
def Test_vim9script_call()
diff --git a/src/version.c b/src/version.c
index 61ee30c92..ab8cb0ea7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 311,
+/**/
310,
/**/
309,