Mercurial > vim
comparison src/testdir/test_vim9_assign.vim @ 23450:a8e7acf71fa4 v8.2.2268
patch 8.2.2268: Vim9: list unpack seen as declaration
Commit: https://github.com/vim/vim/commit/3862ea3f620f02569c2d816ca9ceeeac3a0ad901
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jan 1 21:05:55 2021 +0100
patch 8.2.2268: Vim9: list unpack seen as declaration
Problem: Vim9: list unpack seen as declaration.
Solution: Check for "var". (closes https://github.com/vim/vim/issues/7594)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 01 Jan 2021 21:15:04 +0100 |
parents | 8f31b990ab1e |
children | 1f85acfb23cd |
comparison
equal
deleted
inserted
replaced
23449:f04821549e6f | 23450:a8e7acf71fa4 |
---|---|
258 var v1: number | 258 var v1: number |
259 var v2: number | 259 var v2: number |
260 [v1, v2] = popup_clear() | 260 [v1, v2] = popup_clear() |
261 END | 261 END |
262 CheckDefFailure(lines, 'E1031:', 3) | 262 CheckDefFailure(lines, 'E1031:', 3) |
263 | |
264 lines =<< trim END | |
265 [v1, v2] = [1, 2] | |
266 END | |
267 CheckDefFailure(lines, 'E1089', 1) | |
268 CheckScriptFailure(['vim9script'] + lines, 'E1089', 2) | |
263 | 269 |
264 lines =<< trim END | 270 lines =<< trim END |
265 var v1: number | 271 var v1: number |
266 var v2: number | 272 var v2: number |
267 [v1, v2] = '' | 273 [v1, v2] = '' |
757 | 763 |
758 var nr = 1234 | nr = 5678 | 764 var nr = 1234 | nr = 5678 |
759 assert_equal(5678, nr) | 765 assert_equal(5678, nr) |
760 enddef | 766 enddef |
761 | 767 |
768 let scriptvar = 'init' | |
769 | |
762 def Test_assignment_var_list() | 770 def Test_assignment_var_list() |
763 var lines =<< trim END | 771 var lines =<< trim END |
764 var v1: string | 772 var v1: string |
765 var v2: string | 773 var v2: string |
766 var vrem: list<string> | 774 var vrem: list<string> |
792 | 800 |
793 [$SOME_VAR, $OTHER_VAR] = ['some', 'other'] | 801 [$SOME_VAR, $OTHER_VAR] = ['some', 'other'] |
794 assert_equal('some', $SOME_VAR) | 802 assert_equal('some', $SOME_VAR) |
795 assert_equal('other', $OTHER_VAR) | 803 assert_equal('other', $OTHER_VAR) |
796 | 804 |
797 [g:globalvar, s:scriptvar, b:bufvar, w:winvar, t:tabvar, v:errmsg] = | 805 [g:globalvar, b:bufvar, w:winvar, t:tabvar, v:errmsg] = |
798 ['global', 'script', 'buf', 'win', 'tab', 'error'] | 806 ['global', 'buf', 'win', 'tab', 'error'] |
799 assert_equal('global', g:globalvar) | 807 assert_equal('global', g:globalvar) |
800 assert_equal('script', s:scriptvar) | |
801 assert_equal('buf', b:bufvar) | 808 assert_equal('buf', b:bufvar) |
802 assert_equal('win', w:winvar) | 809 assert_equal('win', w:winvar) |
803 assert_equal('tab', t:tabvar) | 810 assert_equal('tab', t:tabvar) |
804 assert_equal('error', v:errmsg) | 811 assert_equal('error', v:errmsg) |
805 unlet g:globalvar | 812 unlet g:globalvar |
806 END | 813 END |
807 CheckDefAndScriptSuccess(lines) | 814 CheckDefAndScriptSuccess(lines) |
815 | |
816 [g:globalvar, s:scriptvar, b:bufvar] = ['global', 'script', 'buf'] | |
817 assert_equal('global', g:globalvar) | |
818 assert_equal('script', s:scriptvar) | |
819 assert_equal('buf', b:bufvar) | |
820 | |
821 lines =<< trim END | |
822 vim9script | |
823 var s:scriptvar = 'init' | |
824 [g:globalvar, s:scriptvar, w:winvar] = ['global', 'script', 'win'] | |
825 assert_equal('global', g:globalvar) | |
826 assert_equal('script', s:scriptvar) | |
827 assert_equal('win', w:winvar) | |
828 END | |
829 CheckScriptSuccess(lines) | |
808 enddef | 830 enddef |
809 | 831 |
810 def Test_assignment_vim9script() | 832 def Test_assignment_vim9script() |
811 var lines =<< trim END | 833 var lines =<< trim END |
812 vim9script | 834 vim9script |
1180 var s:other: number | 1202 var s:other: number |
1181 other = 1234 | 1203 other = 1234 |
1182 g:other_var = other | 1204 g:other_var = other |
1183 | 1205 |
1184 # type is inferred | 1206 # type is inferred |
1185 s:dict = {['a']: 222} | 1207 var s:dict = {['a']: 222} |
1186 def GetDictVal(key: any) | 1208 def GetDictVal(key: any) |
1187 g:dict_val = s:dict[key] | 1209 g:dict_val = s:dict[key] |
1188 enddef | 1210 enddef |
1189 GetDictVal('a') | 1211 GetDictVal('a') |
1190 END | 1212 END |