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 *