diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index 8cafbe863c2..4c240f34a35 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -207,8 +207,7 @@ f'{a * f"-{x()}-"}'""" call = binop.right.values[1].value self.assertEqual(type(call), ast.Call) self.assertEqual(call.lineno, 3) - if support.use_old_parser(): - self.assertEqual(call.col_offset, 11) + self.assertEqual(call.col_offset, 11) def test_ast_line_numbers_duplicate_expression(self): """Duplicate expression diff --git a/Parser/pegen/parse_string.c b/Parser/pegen/parse_string.c index 9a78a28d241..834239e23fa 100644 --- a/Parser/pegen/parse_string.c +++ b/Parser/pegen/parse_string.c @@ -449,6 +449,15 @@ static void fstring_shift_children_locations(expr_ty n, int lineno, int col_offs case Tuple_kind: fstring_shift_seq_locations(n, n->v.Tuple.elts, lineno, col_offset); break; + case JoinedStr_kind: + fstring_shift_seq_locations(n, n->v.JoinedStr.values, lineno, col_offset); + break; + case FormattedValue_kind: + shift_expr(n, n->v.FormattedValue.value, lineno, col_offset); + if (n->v.FormattedValue.format_spec) { + shift_expr(n, n->v.FormattedValue.format_spec, lineno, col_offset); + } + break; default: return; }