mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.2.3118: Vim9: "any" type not handled correctly in for loop
Problem: Vim9: "any" type not handled correctly in for loop. Solution: Change compile time check into runtime check. (closes #8516)
This commit is contained in:
@@ -2488,6 +2488,12 @@ def Test_for_loop()
|
||||
endfor
|
||||
assert_equal('foobar', chars)
|
||||
|
||||
chars = ''
|
||||
for x: string in {a: 'a', b: 'b'}->values()
|
||||
chars ..= x
|
||||
endfor
|
||||
assert_equal('ab', chars)
|
||||
|
||||
# unpack with type
|
||||
var res = ''
|
||||
for [n: number, s: string] in [[1, 'a'], [2, 'b']]
|
||||
|
@@ -755,6 +755,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3118,
|
||||
/**/
|
||||
3117,
|
||||
/**/
|
||||
|
@@ -7932,7 +7932,7 @@ compile_for(char_u *arg_start, cctx_T *cctx)
|
||||
if (lhs_type == &t_any)
|
||||
lhs_type = item_type;
|
||||
else if (item_type != &t_unknown
|
||||
&& ((var_list && item_type == &t_any)
|
||||
&& (item_type == &t_any
|
||||
? need_type(item_type, lhs_type,
|
||||
-1, 0, cctx, FALSE, FALSE)
|
||||
: check_type(lhs_type, item_type, TRUE, where))
|
||||
|
Reference in New Issue
Block a user