summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-18 22:43:27 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-18 22:43:27 +0200
commitc5b1c20b6b1968873ea31edac1db659773b3b93d (patch)
treebf1fa252892a20767a80c548853230f2daee4d24
parent0779fab2979d6d055ba3c464f1c2b9d90dc9e49f (diff)
patch 8.2.1009: Vim9: some failures not checked forv8.2.1009
Problem: Vim9: some failures not checked for. Solution: Add test cases. Remove unused code.
-rw-r--r--src/testdir/test_vim9_script.vim21
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c6
3 files changed, 24 insertions, 5 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index d4cd602223..25fed4acd1 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -127,6 +127,7 @@ def Test_assignment_list()
list2[-3] = 77
assert_equal([77, 88, 99], list2)
call CheckDefExecFailure(['let ll = [1, 2, 3]', 'll[-4] = 6'], 'E684:')
+ call CheckDefExecFailure(['let [v1, v2] = [1, 2]'], 'E1092:')
# type becomes list<any>
let somelist = rand() > 0 ? [1, 2, 3] : ['a', 'b', 'c']
@@ -1920,6 +1921,20 @@ def Test_let_declaration()
unlet g:other_var
enddef
+def Test_let_declaration_fails()
+ let lines =<< trim END
+ vim9script
+ const var: string
+ END
+ CheckScriptFailure(lines, 'E1021:')
+
+ lines =<< trim END
+ vim9script
+ let 9var: string
+ END
+ CheckScriptFailure(lines, 'E475:')
+enddef
+
def Test_let_type_check()
let lines =<< trim END
vim9script
@@ -1933,6 +1948,12 @@ def Test_let_type_check()
let var:string
END
CheckScriptFailure(lines, 'E1069:')
+
+ lines =<< trim END
+ vim9script
+ let var: asdf
+ END
+ CheckScriptFailure(lines, 'E1010:')
enddef
def Test_forward_declaration()
diff --git a/src/version.c b/src/version.c
index a3fedf1cde..c702791a12 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1009,
+/**/
1008,
/**/
1007,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index e92af22cc2..53a30c9b43 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2119,12 +2119,8 @@ call_def_function(
list_T *list;
int count = iptr->isn_arg.number;
+ // type will have been checked to be a list
tv = STACK_TV_BOT(-1);
- if (tv->v_type != VAR_LIST)
- {
- emsg(_(e_listreq));
- goto failed;
- }
list = tv->vval.v_list;
// no error for short list, expect it to be checked earlier