patch 8.2.4287: cannot assign empty list with type to variable with list type
Problem: Cannot assign empty list with any list type to variable with
specific list type.
Solution: Use unknown list type for empty list if the specified type is any.
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 73b3310..744fc5e 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1249,6 +1249,15 @@
v9.CheckScriptSuccess(lines)
enddef
+def Test_assignment_empty_list()
+ var lines =<< trim END
+ var l2: list<any> = []
+ var l: list<string>
+ l = l2
+ END
+ v9.CheckDefAndScriptSuccess(lines)
+enddef
+
def Test_assignment_vim9script()
var lines =<< trim END
vim9script
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 434d49b..55297cb 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -3461,11 +3461,11 @@
enddef
Foo()
END
+ # "any" could be "dict<any>", thus OK
lines[2] = 'var l: list<any>'
- v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
-
+ v9.CheckScriptSuccess(lines)
lines[2] = 'var l: list<any> = []'
- v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
+ v9.CheckScriptSuccess(lines)
lines[2] = 'var l: list<any> = [11]'
v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<number>', 2)