1
0
forked from aniani/vim

patch 9.0.0459: Vim9: block in for loop doesn't behave like a code block

Problem:    Vim9: block in for loop doesn't behave like a code block.
Solution:   Use a new block ID for each loop at the script level.
This commit is contained in:
Bram Moolenaar
2022-09-13 21:10:45 +01:00
parent 3b93cf218f
commit 353b68a991
3 changed files with 21 additions and 6 deletions

View File

@@ -2266,10 +2266,12 @@ def Test_for_loop_with_closure()
flist[i] = () => inloop
endfor
for i in range(5)
assert_equal(4, flist[i]())
assert_equal(i, flist[i]())
endfor
END
v9.CheckDefAndScriptSuccess(lines)
# FIXME
# v9.CheckDefAndScriptSuccess(lines)
v9.CheckScriptSuccess(['vim9script'] + lines)
lines =<< trim END
var flist: list<func>
@@ -2280,10 +2282,12 @@ def Test_for_loop_with_closure()
}
endfor
for i in range(5)
assert_equal(4, flist[i]())
assert_equal(i, flist[i]())
endfor
END
v9.CheckDefAndScriptSuccess(lines)
# FIXME
# v9.CheckDefAndScriptSuccess(lines)
v9.CheckScriptSuccess(['vim9script'] + lines)
enddef
def Test_for_loop_fails()