]> granicus.if.org Git - vim/commitdiff
patch 8.2.2554: Vim9: exporting a final is not tested v8.2.2554
authorBram Moolenaar <Bram@vim.org>
Sat, 27 Feb 2021 21:33:21 +0000 (22:33 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 27 Feb 2021 21:33:21 +0000 (22:33 +0100)
Problem:    Vim9: exporting a final is not tested.
Solution:   Add a test.

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

index a262bcb62e98ab7e72404e50b8eb24372c1cf3a3..707d89e5ab44e5aa83086e76a0ce0c3e53ade9b2 100644 (file)
@@ -918,6 +918,7 @@ let s:export_script_lines =<< trim END
   export def Exported(): string
     return 'Exported'
   enddef
+  export final theList = [1]
 END
 
 def Undo_export_script_lines()
@@ -945,6 +946,10 @@ def Test_vim9_import_export()
     exp_name ..= ' Doe'
     g:imported_name_appended = exp_name
     g:imported_later = exported
+
+    import theList from './Xexport.vim'
+    theList->add(2)
+    assert_equal([1, 2], theList)
   END
 
   writefile(import_script_lines, 'Ximport.vim')
@@ -1144,6 +1149,18 @@ def Test_vim9_import_export()
   writefile(import_assign_to_const, 'Ximport.vim')
   assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
 
+  # try changing an imported final
+  var import_assign_to_final =<< trim END
+    vim9script
+    import theList from './Xexport.vim'
+    def Assign()
+      theList = [2]
+    enddef
+    defcompile
+  END
+  writefile(import_assign_to_final, 'Ximport.vim')
+  assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
+
   # import a very long name, requires making a copy
   var import_long_name_lines =<< trim END
     vim9script
index eece321b3636ec79e5a64165c8fb85574d8d8d4e..6f05f36a9c1ab10d3875a668145176e61ab05495 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2554,
 /**/
     2553,
 /**/