mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.3165: Vim9: in a || expression the error line number may be wrong
Problem: Vim9: in a || expression the error line number may be wrong. Solution: Save and restore the line number when checking the type. (closes #8569)
This commit is contained in:
@@ -401,6 +401,13 @@ def Test_expr2_fails()
|
||||
# comment
|
||||
END
|
||||
CheckScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||true"', 3)
|
||||
|
||||
lines =<< trim END
|
||||
var x = false
|
||||
|| false
|
||||
|| a.b
|
||||
END
|
||||
CheckDefFailure(lines, 'E1001:', 3)
|
||||
enddef
|
||||
|
||||
" test &&
|
||||
|
@@ -755,6 +755,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3165,
|
||||
/**/
|
||||
3164,
|
||||
/**/
|
||||
|
@@ -5095,6 +5095,7 @@ compile_and_or(
|
||||
while (p[0] == opchar && p[1] == opchar)
|
||||
{
|
||||
long start_lnum = SOURCING_LNUM;
|
||||
long save_sourcing_lnum;
|
||||
int start_ctx_lnum = cctx->ctx_lnum;
|
||||
int save_lnum;
|
||||
|
||||
@@ -5116,6 +5117,7 @@ compile_and_or(
|
||||
generate_ppconst(cctx, ppconst);
|
||||
|
||||
// Every part must evaluate to a bool.
|
||||
save_sourcing_lnum = SOURCING_LNUM;
|
||||
SOURCING_LNUM = start_lnum;
|
||||
save_lnum = cctx->ctx_lnum;
|
||||
cctx->ctx_lnum = start_ctx_lnum;
|
||||
@@ -5138,6 +5140,7 @@ compile_and_or(
|
||||
? JUMP_IF_COND_TRUE : JUMP_IF_COND_FALSE, 0);
|
||||
|
||||
// eval the next expression
|
||||
SOURCING_LNUM = save_sourcing_lnum;
|
||||
if (may_get_next_line_error(p + 2, arg, cctx) == FAIL)
|
||||
{
|
||||
ga_clear(&end_ga);
|
||||
|
Reference in New Issue
Block a user