Mercurial > vim
comparison src/testdir/test_vim9_expr.vim @ 23199:59f31d2eb4cf v8.2.2145
patch 8.2.2145: Vim9: concatenating lists does not adjust type of result
Commit: https://github.com/vim/vim/commit/399ea8108c8da3fcdf5d738a0f8eae67155b4b10
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Dec 15 21:28:57 2020 +0100
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 15 Dec 2020 21:30:04 +0100 |
parents | 5f08d4a42898 |
children | 94608d7c3b55 |
comparison
equal
deleted
inserted
replaced
23198:e7fe2f43809c | 23199:59f31d2eb4cf |
---|---|
1315 CheckFeature channel | 1315 CheckFeature channel |
1316 call CheckDefFailure(["var x = 'a' .. test_null_job()"], 'E1105:', 1) | 1316 call CheckDefFailure(["var x = 'a' .. test_null_job()"], 'E1105:', 1) |
1317 call CheckDefFailure(["var x = 'a' .. test_null_channel()"], 'E1105:', 1) | 1317 call CheckDefFailure(["var x = 'a' .. test_null_channel()"], 'E1105:', 1) |
1318 endfunc | 1318 endfunc |
1319 | 1319 |
1320 def Test_expr5_list_add() | |
1321 # concatenating two lists with same member types is OK | |
1322 var d = {} | |
1323 for i in ['a'] + ['b'] | |
1324 d = {[i]: 0} | |
1325 endfor | |
1326 | |
1327 # concatenating two lists with different member types results in "any" | |
1328 var lines =<< trim END | |
1329 var d = {} | |
1330 for i in ['a'] + [0] | |
1331 d = {[i]: 0} | |
1332 endfor | |
1333 END | |
1334 CheckDefExecFailure(lines, 'E1012:') | |
1335 enddef | |
1336 | |
1320 " test multiply, divide, modulo | 1337 " test multiply, divide, modulo |
1321 def Test_expr6() | 1338 def Test_expr6() |
1322 var lines =<< trim END | 1339 var lines =<< trim END |
1323 assert_equal(36, 6 * 6) | 1340 assert_equal(36, 6 * 6) |
1324 assert_equal(24, 6 * | 1341 assert_equal(24, 6 * |