summaryrefslogtreecommitdiffstats
path: root/Parser/string_parser.c
diff options
context:
space:
mode:
authorPablo Galindo Salgado <Pablogsal@gmail.com>2022-01-08 00:23:40 (GMT)
committerGitHub <noreply@github.com>2022-01-08 00:23:40 (GMT)
commit6fa8b2ceee38187b0ae96aee12fe4f0a5c8a2ce7 (patch)
tree22f9edf799bc7020af220b609b7dbb655e34b106 /Parser/string_parser.c
parentd81182b8ec3b1593daf241d44757a9fa68fd14cc (diff)
downloadcpython-6fa8b2ceee38187b0ae96aee12fe4f0a5c8a2ce7.zip
cpython-6fa8b2ceee38187b0ae96aee12fe4f0a5c8a2ce7.tar.gz
cpython-6fa8b2ceee38187b0ae96aee12fe4f0a5c8a2ce7.tar.bz2
bpo-46237: Fix the line number of tokenizer errors inside f-strings (GH-30463)
Diffstat (limited to 'Parser/string_parser.c')
-rw-r--r--Parser/string_parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Parser/string_parser.c b/Parser/string_parser.c
index c6fe99c..57d9b9e 100644
--- a/Parser/string_parser.c
+++ b/Parser/string_parser.c
@@ -392,11 +392,14 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
return NULL;
}
Py_INCREF(p->tok->filename);
+
tok->filename = p->tok->filename;
+ tok->lineno = t->lineno + lines - 1;
Parser *p2 = _PyPegen_Parser_New(tok, Py_fstring_input, p->flags, p->feature_version,
NULL, p->arena);
- p2->starting_lineno = t->lineno + lines - 1;
+
+ p2->starting_lineno = t->lineno + lines;
p2->starting_col_offset = t->col_offset + cols;
expr = _PyPegen_run_parser(p2);