Problem: Vim9: after "if false" line breaks in expression not skipped.
Solution: Do parse the expression. (closes #8723)
if false
burp
endif
+
+ # expression with line breaks skipped
+ if false
+ ('aaa'
+ .. 'bbb'
+ .. 'ccc'
+ )->setline(1)
+ endif
enddef
def Test_if_const_expr_fails()
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 3312,
/**/
3311,
/**/
if (p == ea.cmd && ea.cmdidx != CMD_SIZE)
{
- if (cctx.ctx_skip == SKIP_YES)
+ if (cctx.ctx_skip == SKIP_YES && ea.cmdidx != CMD_eval)
{
line += STRLEN(line);
goto nextline;
}
-
- // Expression or function call.
- if (ea.cmdidx != CMD_eval)
+ else if (ea.cmdidx != CMD_eval)
{
// CMD_var cannot happen, compile_assignment() above would be
// used. Most likely an assignment to a non-existing variable.