mirror of https://github.com/python/cpython
gh-122300: Preserve AST nodes for format specifiers with single elements (#122308)
This commit is contained in:
parent
7c2921844f
commit
db2d8b6db1
|
@ -316,7 +316,9 @@ Literals
|
||||||
args=[
|
args=[
|
||||||
Name(id='a', ctx=Load())]),
|
Name(id='a', ctx=Load())]),
|
||||||
conversion=-1,
|
conversion=-1,
|
||||||
format_spec=Constant(value='.3'))]))
|
format_spec=JoinedStr(
|
||||||
|
values=[
|
||||||
|
Constant(value='.3')]))]))
|
||||||
|
|
||||||
|
|
||||||
.. class:: List(elts, ctx)
|
.. class:: List(elts, ctx)
|
||||||
|
|
|
@ -3638,7 +3638,7 @@ eval_results = [
|
||||||
('Expression', ('Subscript', (1, 0, 1, 10), ('List', (1, 0, 1, 3), [('Constant', (1, 1, 1, 2), 5, None)], ('Load',)), ('Slice', (1, 4, 1, 9), ('Constant', (1, 4, 1, 5), 1, None), ('Constant', (1, 6, 1, 7), 1, None), ('Constant', (1, 8, 1, 9), 1, None)), ('Load',))),
|
('Expression', ('Subscript', (1, 0, 1, 10), ('List', (1, 0, 1, 3), [('Constant', (1, 1, 1, 2), 5, None)], ('Load',)), ('Slice', (1, 4, 1, 9), ('Constant', (1, 4, 1, 5), 1, None), ('Constant', (1, 6, 1, 7), 1, None), ('Constant', (1, 8, 1, 9), 1, None)), ('Load',))),
|
||||||
('Expression', ('IfExp', (1, 0, 1, 21), ('Name', (1, 9, 1, 10), 'x', ('Load',)), ('Call', (1, 0, 1, 5), ('Name', (1, 0, 1, 3), 'foo', ('Load',)), [], []), ('Call', (1, 16, 1, 21), ('Name', (1, 16, 1, 19), 'bar', ('Load',)), [], []))),
|
('Expression', ('IfExp', (1, 0, 1, 21), ('Name', (1, 9, 1, 10), 'x', ('Load',)), ('Call', (1, 0, 1, 5), ('Name', (1, 0, 1, 3), 'foo', ('Load',)), [], []), ('Call', (1, 16, 1, 21), ('Name', (1, 16, 1, 19), 'bar', ('Load',)), [], []))),
|
||||||
('Expression', ('JoinedStr', (1, 0, 1, 6), [('FormattedValue', (1, 2, 1, 5), ('Name', (1, 3, 1, 4), 'a', ('Load',)), -1, None)])),
|
('Expression', ('JoinedStr', (1, 0, 1, 6), [('FormattedValue', (1, 2, 1, 5), ('Name', (1, 3, 1, 4), 'a', ('Load',)), -1, None)])),
|
||||||
('Expression', ('JoinedStr', (1, 0, 1, 10), [('FormattedValue', (1, 2, 1, 9), ('Name', (1, 3, 1, 4), 'a', ('Load',)), -1, ('Constant', (1, 5, 1, 8), '.2f', None))])),
|
('Expression', ('JoinedStr', (1, 0, 1, 10), [('FormattedValue', (1, 2, 1, 9), ('Name', (1, 3, 1, 4), 'a', ('Load',)), -1, ('JoinedStr', (1, 4, 1, 8), [('Constant', (1, 5, 1, 8), '.2f', None)]))])),
|
||||||
('Expression', ('JoinedStr', (1, 0, 1, 8), [('FormattedValue', (1, 2, 1, 7), ('Name', (1, 3, 1, 4), 'a', ('Load',)), 114, None)])),
|
('Expression', ('JoinedStr', (1, 0, 1, 8), [('FormattedValue', (1, 2, 1, 7), ('Name', (1, 3, 1, 4), 'a', ('Load',)), 114, None)])),
|
||||||
('Expression', ('JoinedStr', (1, 0, 1, 11), [('Constant', (1, 2, 1, 6), 'foo(', None), ('FormattedValue', (1, 6, 1, 9), ('Name', (1, 7, 1, 8), 'a', ('Load',)), -1, None), ('Constant', (1, 9, 1, 10), ')', None)])),
|
('Expression', ('JoinedStr', (1, 0, 1, 11), [('Constant', (1, 2, 1, 6), 'foo(', None), ('FormattedValue', (1, 6, 1, 9), ('Name', (1, 7, 1, 8), 'a', ('Load',)), -1, None), ('Constant', (1, 9, 1, 10), ')', None)])),
|
||||||
]
|
]
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Preserve AST nodes for f-string with single-element format specifiers. Patch
|
||||||
|
by Pablo Galindo
|
|
@ -1010,7 +1010,8 @@ _PyPegen_setup_full_format_spec(Parser *p, Token *colon, asdl_expr_seq *spec, in
|
||||||
spec = resized_spec;
|
spec = resized_spec;
|
||||||
}
|
}
|
||||||
expr_ty res;
|
expr_ty res;
|
||||||
if (asdl_seq_LEN(spec) == 0) {
|
Py_ssize_t n = asdl_seq_LEN(spec);
|
||||||
|
if (n == 0 || (n == 1 && asdl_seq_GET(spec, 0)->kind == Constant_kind)) {
|
||||||
res = _PyAST_JoinedStr(spec, lineno, col_offset, end_lineno,
|
res = _PyAST_JoinedStr(spec, lineno, col_offset, end_lineno,
|
||||||
end_col_offset, p->arena);
|
end_col_offset, p->arena);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue