From 3a11091934cb6811c344b21ceac05efbc5ab2ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20S=C5=82awecki?= Date: Mon, 12 Oct 2026 14:08:25 +0200 Subject: [PATCH] [3.15] gh-156909: Fix `AST.__repr__` call getting the `_fields` attribute (GH-157490) (GH-157596) (cherry picked from commit ad0a18a17d7f60fab5fdd79d789c53bf3d3c2cd6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartosz Sławecki (cherry picked from commit 1bfcc3cc871d3fab21b77cdc47cdbfcf89fd8b5b) --- Parser/asdl_c.py | 4 ++-- Python/Python-ast.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py index de202aaec8cbbb2..37abdf4b5f3d23b 100755 --- a/Parser/asdl_c.py +++ b/Parser/asdl_c.py @@ -1577,8 +1577,8 @@ def visitModule(self, mod): return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name); } - PyObject *fields; - if (PyObject_GetOptionalAttr((PyObject *)Py_TYPE(self), state->_fields, &fields) < 0) { + PyObject *fields = PyObject_GetAttr((PyObject *)Py_TYPE(self), state->_fields); + if (!fields) { Py_ReprLeave((PyObject *)self); return NULL; } diff --git a/Python/Python-ast.c b/Python/Python-ast.c index 2dd2f6778d14749..6ea9bdffed710bb 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -5861,8 +5861,8 @@ ast_repr_max_depth(AST_object *self, int depth) return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name); } - PyObject *fields; - if (PyObject_GetOptionalAttr((PyObject *)Py_TYPE(self), state->_fields, &fields) < 0) { + PyObject *fields = PyObject_GetAttr((PyObject *)Py_TYPE(self), state->_fields); + if (!fields) { Py_ReprLeave((PyObject *)self); return NULL; }