comparison src/testdir/test_vim9_script.vim @ 23068:2f034cb0a046 v8.2.2080

patch 8.2.2080: Vim9: no proper error message for using s:var in for loop Commit: https://github.com/vim/vim/commit/ea87069d7814497181483877651aef6d97182120 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 2 14:24:30 2020 +0100 patch 8.2.2080: Vim9: no proper error message for using s:var in for loop Problem: Vim9: no proper error message for using s:var in for loop. Solution: Give a specific error.
author Bram Moolenaar <Bram@vim.org>
date Wed, 02 Dec 2020 14:30:03 +0100
parents b3124656f050
children 4b398a229b0b
comparison
equal deleted inserted replaced
23067:d65e8d80869b 23068:2f034cb0a046
1880 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:') 1880 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
1881 CheckDefFailure(['for i in "text"'], 'E1012:') 1881 CheckDefFailure(['for i in "text"'], 'E1012:')
1882 CheckDefFailure(['for i in xxx'], 'E1001:') 1882 CheckDefFailure(['for i in xxx'], 'E1001:')
1883 CheckDefFailure(['endfor'], 'E588:') 1883 CheckDefFailure(['endfor'], 'E588:')
1884 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:') 1884 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
1885 enddef
1886
1887 def Test_for_loop_script_var()
1888 # cannot use s:var in a :def function
1889 CheckDefFailure(['for s:var in range(3)', 'echo 3'], 'E1101:')
1890
1891 # can use s:var in Vim9 script, with or without s:
1892 var lines =<< trim END
1893 vim9script
1894 var total = 0
1895 for s:var in [1, 2, 3]
1896 total += s:var
1897 endfor
1898 assert_equal(6, total)
1899
1900 total = 0
1901 for var in [1, 2, 3]
1902 total += var
1903 endfor
1904 assert_equal(6, total)
1905 END
1885 enddef 1906 enddef
1886 1907
1887 def Test_for_loop_unpack() 1908 def Test_for_loop_unpack()
1888 var lines =<< trim END 1909 var lines =<< trim END
1889 var result = [] 1910 var result = []