1
0
forked from aniani/vim

patch 8.2.2268: Vim9: list unpack seen as declaration

Problem:    Vim9: list unpack seen as declaration.
Solution:   Check for "var". (closes #7594)
This commit is contained in:
Bram Moolenaar
2021-01-01 21:05:55 +01:00
parent c368957b19
commit 3862ea3f62
7 changed files with 54 additions and 15 deletions

View File

@@ -261,6 +261,12 @@ def Test_assign_unpack()
END
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
@@ -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