comparison src/testdir/test_vim9_script.vim @ 20816:9faab49c880f v8.2.0960

patch 8.2.0960: cannot use :import in legacy Vim script Commit: https://github.com/vim/vim/commit/9721fb4ea3db2559aaf7f71458da8ddda30ff93e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 11 23:10:46 2020 +0200 patch 8.2.0960: cannot use :import in legacy Vim script Problem: Cannot use :import in legacy Vim script. Solution: Support :import in any Vim script.
author Bram Moolenaar <Bram@vim.org>
date Thu, 11 Jun 2020 23:15:03 +0200
parents 9f921ba86d05
children 0600ab7b9f09
comparison
equal deleted inserted replaced
20815:1b780bd39c59 20816:9faab49c880f
734 734
735 def Test_vim9script_fails() 735 def Test_vim9script_fails()
736 CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:') 736 CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
737 CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:') 737 CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')
738 CheckScriptFailure(['export let some = 123'], 'E1042:') 738 CheckScriptFailure(['export let some = 123'], 'E1042:')
739 CheckScriptFailure(['import some from "./Xexport.vim"'], 'E1042:') 739 CheckScriptFailure(['import some from "./Xexport.vim"'], 'E1048:')
740 CheckScriptFailure(['vim9script', 'export let g:some'], 'E1044:') 740 CheckScriptFailure(['vim9script', 'export let g:some'], 'E1044:')
741 CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:') 741 CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
742 742
743 assert_fails('vim9script', 'E1038') 743 assert_fails('vim9script', 'E1038')
744 assert_fails('export something', 'E1043') 744 assert_fails('export something', 'E1043')
1834 unlet g:initVal 1834 unlet g:initVal
1835 unlet g:laterVal 1835 unlet g:laterVal
1836 delete('Xforward') 1836 delete('Xforward')
1837 enddef 1837 enddef
1838 1838
1839 def Test_source_vim9_from_legacy()
1840 let legacy_lines =<< trim END
1841 source Xvim9_script.vim
1842
1843 call assert_false(exists('local'))
1844 call assert_false(exists('exported'))
1845 call assert_false(exists('s:exported'))
1846 call assert_equal('global', global)
1847 call assert_equal('global', g:global)
1848
1849 " imported variable becomes script-local
1850 import exported from './Xvim9_script.vim'
1851 call assert_equal('exported', s:exported)
1852 call assert_false(exists('exported'))
1853
1854 " imported function becomes script-local
1855 import GetText from './Xvim9_script.vim'
1856 call assert_equal('text', s:GetText())
1857 call assert_false(exists('*GetText'))
1858 END
1859 writefile(legacy_lines, 'Xlegacy_script.vim')
1860
1861 let vim9_lines =<< trim END
1862 vim9script
1863 let local = 'local'
1864 g:global = 'global'
1865 export let exported = 'exported'
1866 export def GetText(): string
1867 return 'text'
1868 enddef
1869 END
1870 writefile(vim9_lines, 'Xvim9_script.vim')
1871
1872 source Xlegacy_script.vim
1873
1874 assert_equal('global', g:global)
1875 " unlet g:global
1876
1877 delete('Xlegacy_script.vim')
1878 delete('Xvim9_script.vim')
1879 enddef
1839 1880
1840 " Keep this last, it messes up highlighting. 1881 " Keep this last, it messes up highlighting.
1841 def Test_substitute_cmd() 1882 def Test_substitute_cmd()
1842 new 1883 new
1843 setline(1, 'something') 1884 setline(1, 'something')