bpo-39031: Include elif keyword when producing lineno/col-offset info for if_stmt (GH-17582) (GH-17589)
When parsing an "elif" node, lineno and col_offset of the node now point to the "elif" keyword and not to its condition, making it consistent with the "if" node.
https://bugs.python.org/issue39031
Automerge-Triggered-By: @pablogsal
(cherry picked from commit 025a602af7ee284d8db6955c26016f3f27d35536)
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
diff --git a/Python/ast.c b/Python/ast.c
index 2031b88..15d2027 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -4079,8 +4079,8 @@
}
asdl_seq_SET(newobj, 0,
If(expression, suite_seq, orelse,
- LINENO(CHILD(n, off)),
- CHILD(n, off)->n_col_offset,
+ LINENO(CHILD(n, off - 1)),
+ CHILD(n, off - 1)->n_col_offset,
end_lineno, end_col_offset, c->c_arena));
orelse = newobj;
}