]> granicus.if.org Git - vim/commitdiff
patch 8.2.0311: Vim9: insufficient script tests v8.2.0311
authorBram Moolenaar <Bram@vim.org>
Sun, 23 Feb 2020 17:08:33 +0000 (18:08 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 23 Feb 2020 17:08:33 +0000 (18:08 +0100)
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.

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

index 09548d89bcdca19a134ec6a2c3bfc6bb39737afe..9c644e2b02bc6875fb6897482278327ccda075ca 100644 (file)
@@ -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
     {
index a7bccec4e241280946001c37acc6352e34f7e164..1af897e06638c2fa43763b292e3e2ff81706e102 100644 (file)
@@ -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()
index 61ee30c929f790cc6a7f91068cd081c1873ce597..ab8cb0ea7f1a414ba7dc12b1d406c63b9c35985d 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    311,
 /**/
     310,
 /**/