0
0
mirror of https://github.com/vim/vim.git synced 2025-11-10 10:47:23 -05:00

patch 9.0.2172: Vim9: compiling :defer may fail

Problem:  Vim9: compiling :defer may fail
Solution: compile defer, when ctx_skip is not SKIP_YES

compiling defer fails in an if statement with false condition,
so check the ctx_skip value when compiling :defer

fixes:  #13698
closes: #13702

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2023-12-16 14:36:08 +01:00
committed by Christian Brabandt
parent 535e8f5941
commit a185a31fc0
3 changed files with 38 additions and 19 deletions

View File

@@ -4783,6 +4783,19 @@ def Test_multidefer_with_exception()
v9.CheckSourceSuccess(lines)
enddef
" Test for using ":defer" inside an if statement with a false condition
def Test_defer_skipped()
var lines =<< trim END
def Foo()
if false
defer execute('echow "hello"', "")
endif
enddef
defcompile
END
v9.CheckSourceSuccess(lines)
enddef
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new