patch 8.2.2145: Vim9: concatenating lists does not adjust type of result
Problem: Vim9: concatenating lists does not adjust type of result.
Solution: When list member types differ use "any" member type.
(closes #7473)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 812aabf..9147536 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1317,6 +1317,23 @@
call CheckDefFailure(["var x = 'a' .. test_null_channel()"], 'E1105:', 1)
endfunc
+def Test_expr5_list_add()
+ # concatenating two lists with same member types is OK
+ var d = {}
+ for i in ['a'] + ['b']
+ d = {[i]: 0}
+ endfor
+
+ # concatenating two lists with different member types results in "any"
+ var lines =<< trim END
+ var d = {}
+ for i in ['a'] + [0]
+ d = {[i]: 0}
+ endfor
+ END
+ CheckDefExecFailure(lines, 'E1012:')
+enddef
+
" test multiply, divide, modulo
def Test_expr6()
var lines =<< trim END