Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 22975:a943b175586a v8.2.2034
patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Commit: https://github.com/vim/vim/commit/792f786aad8409ca9ab895392742643a5b6aed8f
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Nov 23 08:31:18 2020 +0100
patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Problem: Vim9: list unpack in for statement not compiled yet.
Solution: Compile list unpack. (closes https://github.com/vim/vim/issues/7345)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 23 Nov 2020 08:45:04 +0100 |
parents | 00b0275ffe7f |
children | df0548b649c1 |
comparison
equal
deleted
inserted
replaced
22974:3f8025537dd9 | 22975:a943b175586a |
---|---|
1858 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:') | 1858 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:') |
1859 CheckDefFailure(['for i in "text"'], 'E1012:') | 1859 CheckDefFailure(['for i in "text"'], 'E1012:') |
1860 CheckDefFailure(['for i in xxx'], 'E1001:') | 1860 CheckDefFailure(['for i in xxx'], 'E1001:') |
1861 CheckDefFailure(['endfor'], 'E588:') | 1861 CheckDefFailure(['endfor'], 'E588:') |
1862 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:') | 1862 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:') |
1863 enddef | |
1864 | |
1865 def Test_for_loop_unpack() | |
1866 var result = [] | |
1867 for [v1, v2] in [[1, 2], [3, 4]] | |
1868 result->add(v1) | |
1869 result->add(v2) | |
1870 endfor | |
1871 assert_equal([1, 2, 3, 4], result) | |
1872 | |
1873 result = [] | |
1874 for [v1, v2; v3] in [[1, 2], [3, 4, 5, 6]] | |
1875 result->add(v1) | |
1876 result->add(v2) | |
1877 result->add(v3) | |
1878 endfor | |
1879 assert_equal([1, 2, [], 3, 4, [5, 6]], result) | |
1880 | |
1881 var lines =<< trim END | |
1882 for [v1, v2] in [[1, 2, 3], [3, 4]] | |
1883 echo v1 v2 | |
1884 endfor | |
1885 END | |
1886 CheckDefExecFailure(lines, 'E710:', 1) | |
1887 | |
1888 lines =<< trim END | |
1889 for [v1, v2] in [[1], [3, 4]] | |
1890 echo v1 v2 | |
1891 endfor | |
1892 END | |
1893 CheckDefExecFailure(lines, 'E711:', 1) | |
1894 | |
1895 lines =<< trim END | |
1896 for [v1, v1] in [[1, 2], [3, 4]] | |
1897 echo v1 | |
1898 endfor | |
1899 END | |
1900 CheckDefExecFailure(lines, 'E1017:', 1) | |
1863 enddef | 1901 enddef |
1864 | 1902 |
1865 def Test_while_loop() | 1903 def Test_while_loop() |
1866 var result = '' | 1904 var result = '' |
1867 var cnt = 0 | 1905 var cnt = 0 |