diff options
author | rbtnn <naru123456789@gmail.com> | 2021-08-21 17:26:50 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-08-21 17:26:50 +0200 |
commit | bebf06954e1c801870b57e06ab03151c2654d079 (patch) | |
tree | b6b7aedc49e45774e11ac47f73efdda6944a06f6 /src/testdir | |
parent | b8bd2e6ebab03baf2672067067a599df69a278c0 (diff) | |
download | vim-git-bebf06954e1c801870b57e06ab03151c2654d079.tar.gz |
patch 8.2.3364: Vim9: crash when :for is skippedv8.2.3364
Problem: Vim9: crash when :for is skipped.
Solution: Skip more code generation. (Naruhiko Nishino, closes #8777)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_script.vim | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index fd93c3a8b..cdbf914ab 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -2552,6 +2552,70 @@ def Test_for_outside_of_function() delete('Xvim9for.vim') enddef +def Test_for_skipped_block() + # test skipped blocks at outside of function + var lines =<< trim END + var result = [] + if true + for n in [1, 2] + result += [n] + endfor + else + for n in [3, 4] + result += [n] + endfor + endif + assert_equal([1, 2], result) + + result = [] + if false + for n in [1, 2] + result += [n] + endfor + else + for n in [3, 4] + result += [n] + endfor + endif + assert_equal([3, 4], result) + END + CheckDefAndScriptSuccess(lines) + + # test skipped blocks at inside of function + lines =<< trim END + def DefTrue() + var result = [] + if true + for n in [1, 2] + result += [n] + endfor + else + for n in [3, 4] + result += [n] + endfor + endif + assert_equal([1, 2], result) + enddef + DefTrue() + + def DefFalse() + var result = [] + if false + for n in [1, 2] + result += [n] + endfor + else + for n in [3, 4] + result += [n] + endfor + endif + assert_equal([3, 4], result) + enddef + DefFalse() + END + CheckDefAndScriptSuccess(lines) +enddef + def Test_for_loop() var lines =<< trim END var result = '' |