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
|
# comment
|
||||||
END
|
END
|
||||||
CheckScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||true"', 3)
|
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
|
enddef
|
||||||
|
|
||||||
" test &&
|
" test &&
|
||||||
|
@@ -755,6 +755,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
3165,
|
||||||
/**/
|
/**/
|
||||||
3164,
|
3164,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -5095,6 +5095,7 @@ compile_and_or(
|
|||||||
while (p[0] == opchar && p[1] == opchar)
|
while (p[0] == opchar && p[1] == opchar)
|
||||||
{
|
{
|
||||||
long start_lnum = SOURCING_LNUM;
|
long start_lnum = SOURCING_LNUM;
|
||||||
|
long save_sourcing_lnum;
|
||||||
int start_ctx_lnum = cctx->ctx_lnum;
|
int start_ctx_lnum = cctx->ctx_lnum;
|
||||||
int save_lnum;
|
int save_lnum;
|
||||||
|
|
||||||
@@ -5116,6 +5117,7 @@ compile_and_or(
|
|||||||
generate_ppconst(cctx, ppconst);
|
generate_ppconst(cctx, ppconst);
|
||||||
|
|
||||||
// Every part must evaluate to a bool.
|
// Every part must evaluate to a bool.
|
||||||
|
save_sourcing_lnum = SOURCING_LNUM;
|
||||||
SOURCING_LNUM = start_lnum;
|
SOURCING_LNUM = start_lnum;
|
||||||
save_lnum = cctx->ctx_lnum;
|
save_lnum = cctx->ctx_lnum;
|
||||||
cctx->ctx_lnum = start_ctx_lnum;
|
cctx->ctx_lnum = start_ctx_lnum;
|
||||||
@@ -5138,6 +5140,7 @@ compile_and_or(
|
|||||||
? JUMP_IF_COND_TRUE : JUMP_IF_COND_FALSE, 0);
|
? JUMP_IF_COND_TRUE : JUMP_IF_COND_FALSE, 0);
|
||||||
|
|
||||||
// eval the next expression
|
// eval the next expression
|
||||||
|
SOURCING_LNUM = save_sourcing_lnum;
|
||||||
if (may_get_next_line_error(p + 2, arg, cctx) == FAIL)
|
if (may_get_next_line_error(p + 2, arg, cctx) == FAIL)
|
||||||
{
|
{
|
||||||
ga_clear(&end_ga);
|
ga_clear(&end_ga);
|
||||||
|
Reference in New Issue
Block a user