patch 8.2.0465: Vim9: dead code and wrong return type
Problem: Vim9: dead code and wrong return type.
Solution: Remove dead code. Fix return type. Add more tests.
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 6efb146..15b2640 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -112,6 +112,16 @@
call CheckDefFailure(['let var: dict <number>'], 'E1007:')
call CheckDefFailure(['let var: dict<number'], 'E1009:')
+endfunc
+
+func Test_wrong_type()
+ call CheckDefFailure(['let var: list<nothing>'], 'E1010:')
+ call CheckDefFailure(['let var: list<list<nothing>>'], 'E1010:')
+ call CheckDefFailure(['let var: dict<nothing>'], 'E1010:')
+ call CheckDefFailure(['let var: dict<dict<nothing>>'], 'E1010:')
+
+ call CheckDefFailure(['let var: dict<number'], 'E1009:')
+ call CheckDefFailure(['let var: dict<list<number>'], 'E1009:')
call CheckDefFailure(['let var: ally'], 'E1010:')
call CheckDefFailure(['let var: bram'], 'E1010:')
@@ -436,6 +446,37 @@
source Ximport.vim
assert_equal(9883, g:imported)
+ let import_star_as_lines_no_dot =<< trim END
+ vim9script
+ import * as Export from './Xexport.vim'
+ def Func()
+ let dummy = 1
+ let imported = Export + dummy
+ enddef
+ END
+ writefile(import_star_as_lines_no_dot, 'Ximport.vim')
+ assert_fails('source Ximport.vim', 'E1060:')
+
+ let import_star_as_lines_dot_space =<< trim END
+ vim9script
+ import * as Export from './Xexport.vim'
+ def Func()
+ let imported = Export . exported
+ enddef
+ END
+ writefile(import_star_as_lines_dot_space, 'Ximport.vim')
+ assert_fails('source Ximport.vim', 'E1074:')
+
+ let import_star_as_lines_missing_name =<< trim END
+ vim9script
+ import * as Export from './Xexport.vim'
+ def Func()
+ let imported = Export.
+ enddef
+ END
+ writefile(import_star_as_lines_missing_name, 'Ximport.vim')
+ assert_fails('source Ximport.vim', 'E1048:')
+
let import_star_lines =<< trim END
vim9script
import * from './Xexport.vim'