Mercurial > vim
diff 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 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -262,6 +262,12 @@ def Test_assign_unpack() CheckDefFailure(lines, 'E1031:', 3) lines =<< trim END + [v1, v2] = [1, 2] + END + CheckDefFailure(lines, 'E1089', 1) + CheckScriptFailure(['vim9script'] + lines, 'E1089', 2) + + lines =<< trim END var v1: number var v2: number [v1, v2] = '' @@ -759,6 +765,8 @@ def Test_assignment_default() assert_equal(5678, nr) enddef +let scriptvar = 'init' + def Test_assignment_var_list() var lines =<< trim END var v1: string @@ -794,10 +802,9 @@ def Test_assignment_var_list() assert_equal('some', $SOME_VAR) assert_equal('other', $OTHER_VAR) - [g:globalvar, s:scriptvar, b:bufvar, w:winvar, t:tabvar, v:errmsg] = - ['global', 'script', 'buf', 'win', 'tab', 'error'] + [g:globalvar, b:bufvar, w:winvar, t:tabvar, v:errmsg] = + ['global', 'buf', 'win', 'tab', 'error'] assert_equal('global', g:globalvar) - assert_equal('script', s:scriptvar) assert_equal('buf', b:bufvar) assert_equal('win', w:winvar) assert_equal('tab', t:tabvar) @@ -805,6 +812,21 @@ def Test_assignment_var_list() unlet g:globalvar END CheckDefAndScriptSuccess(lines) + + [g:globalvar, s:scriptvar, b:bufvar] = ['global', 'script', 'buf'] + assert_equal('global', g:globalvar) + assert_equal('script', s:scriptvar) + assert_equal('buf', b:bufvar) + + lines =<< trim END + vim9script + var s:scriptvar = 'init' + [g:globalvar, s:scriptvar, w:winvar] = ['global', 'script', 'win'] + assert_equal('global', g:globalvar) + assert_equal('script', s:scriptvar) + assert_equal('win', w:winvar) + END + CheckScriptSuccess(lines) enddef def Test_assignment_vim9script() @@ -1182,7 +1204,7 @@ def Test_var_declaration() g:other_var = other # type is inferred - s:dict = {['a']: 222} + var s:dict = {['a']: 222} def GetDictVal(key: any) g:dict_val = s:dict[key] enddef