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