comparison src/testdir/test_vim9_script.vim @ 21188:d73b6ba20053 v8.2.1145

patch 8.2.1145: Vim9: "for" only accepts a list at compile time Commit: https://github.com/vim/vim/commit/0ad3e894d75236915e67dfbbcc821b6bb3c05d91 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 5 21:38:11 2020 +0200 patch 8.2.1145: Vim9: "for" only accepts a list at compile time Problem: Vim9: "for" only accepts a list at compile time. Solution: Also accept a list at runtime.
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 Jul 2020 21:45:04 +0200
parents 951aad18b1af
children 1a4e22aa2eb3
comparison
equal deleted inserted replaced
21187:bfc9b0a72673 21188:d73b6ba20053
1438 continue 1438 continue
1439 endif 1439 endif
1440 result ..= cnt .. '_' 1440 result ..= cnt .. '_'
1441 endfor 1441 endfor
1442 assert_equal('0_1_3_', result) 1442 assert_equal('0_1_3_', result)
1443
1444 let concat = ''
1445 for str in eval('["one", "two"]')
1446 concat ..= str
1447 endfor
1448 assert_equal('onetwo', concat)
1443 enddef 1449 enddef
1444 1450
1445 def Test_for_loop_fails() 1451 def Test_for_loop_fails()
1446 CheckDefFailure(['for # in range(5)'], 'E690:') 1452 CheckDefFailure(['for # in range(5)'], 'E690:')
1447 CheckDefFailure(['for i In range(5)'], 'E690:') 1453 CheckDefFailure(['for i In range(5)'], 'E690:')
1448 CheckDefFailure(['let x = 5', 'for x in range(5)'], 'E1023:') 1454 CheckDefFailure(['let x = 5', 'for x in range(5)'], 'E1023:')
1449 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:') 1455 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
1450 CheckDefFailure(['for i in "text"'], 'E1024:') 1456 CheckDefFailure(['for i in "text"'], 'E1013:')
1451 CheckDefFailure(['for i in xxx'], 'E1001:') 1457 CheckDefFailure(['for i in xxx'], 'E1001:')
1452 CheckDefFailure(['endfor'], 'E588:') 1458 CheckDefFailure(['endfor'], 'E588:')
1453 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:') 1459 CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
1454 enddef 1460 enddef
1455 1461