Skip to content

Commit c5b1c20

Browse files
committed
patch 8.2.1009: Vim9: some failures not checked for
Problem: Vim9: some failures not checked for. Solution: Add test cases. Remove unused code.
1 parent 0779fab commit c5b1c20

3 files changed

Lines changed: 24 additions & 5 deletions

File tree

src/testdir/test_vim9_script.vim

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ def Test_assignment_list()
127127
list2[-3] = 77
128128
assert_equal([77, 88, 99], list2)
129129
call CheckDefExecFailure(['let ll = [1, 2, 3]', 'll[-4] = 6'], 'E684:')
130+
call CheckDefExecFailure(['let [v1, v2] = [1, 2]'], 'E1092:')
130131

131132
# type becomes list<any>
132133
let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c']
@@ -1920,6 +1921,20 @@ def Test_let_declaration()
19201921
unlet g:other_var
19211922
enddef
19221923

1924+
def Test_let_declaration_fails()
1925+
let lines =<< trim END
1926+
vim9script
1927+
const var: string
1928+
END
1929+
CheckScriptFailure(lines, 'E1021:')
1930+
1931+
lines =<< trim END
1932+
vim9script
1933+
let 9var: string
1934+
END
1935+
CheckScriptFailure(lines, 'E475:')
1936+
enddef
1937+
19231938
def Test_let_type_check()
19241939
let lines =<< trim END
19251940
vim9script
@@ -1933,6 +1948,12 @@ def Test_let_type_check()
19331948
let var:string
19341949
END
19351950
CheckScriptFailure(lines, 'E1069:')
1951+
1952+
lines =<< trim END
1953+
vim9script
1954+
let var: asdf
1955+
END
1956+
CheckScriptFailure(lines, 'E1010:')
19361957
enddef
19371958

19381959
def Test_forward_declaration()

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,8 @@ static char *(features[]) =
754754

755755
static int included_patches[] =
756756
{ /* Add new patch number below this line */
757+
/**/
758+
1009,
757759
/**/
758760
1008,
759761
/**/

src/vim9execute.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2119,12 +2119,8 @@ call_def_function(
21192119
list_T *list;
21202120
int count = iptr->isn_arg.number;
21212121

2122+
// type will have been checked to be a list
21222123
tv = STACK_TV_BOT(-1);
2123-
if (tv->v_type != VAR_LIST)
2124-
{
2125-
emsg(_(e_listreq));
2126-
goto failed;
2127-
}
21282124
list = tv->vval.v_list;
21292125

21302126
// no error for short list, expect it to be checked earlier

0 commit comments

Comments
 (0)