changeset 19507:65049a682574 v8.2.0311

patch 8.2.0311: Vim9: insufficient script tests Commit: https://github.com/vim/vim/commit/750802b55c6edda4d3bc78c41ad0a25a3450a557 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 23 18:08:33 2020 +0100 patch 8.2.0311: Vim9: insufficient script tests Problem: Vim9: insufficient script tests. Solution: Add tests. Free imports when re-using a script.
author Bram Moolenaar <Bram@vim.org>
date Sun, 23 Feb 2020 18:15:03 +0100
parents 8602a051c9bd
children 6afcef2bfba3
files src/scriptfile.c src/testdir/test_vim9_script.vim src/version.c
diffstat 3 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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
     {
--- 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()
--- 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,