Skip to content

Commit

Permalink
gh-109207: Fix SystemError when printing symtable entry object. (GH-1…
Browse files Browse the repository at this point in the history
  • Loading branch information
yunline committed Sep 10, 2023
1 parent 2dd6a86 commit 4297499
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
4 changes: 4 additions & 0 deletions Lib/test/test_symtable.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,10 @@ def test_symtable_repr(self):
self.assertEqual(str(self.top), "<SymbolTable for module ?>")
self.assertEqual(str(self.spam), "<Function SymbolTable for spam in ?>")

def test_symtable_entry_repr(self):
expected = f"<symtable entry top({self.top.get_id()}), line {self.top.get_lineno()}>"
self.assertEqual(repr(self.top._table), expected)


if __name__ == '__main__':
unittest.main()
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a SystemError in ``__repr__`` of symtable entry object.
5 changes: 2 additions & 3 deletions Python/symtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,8 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,
static PyObject *
ste_repr(PySTEntryObject *ste)
{
return PyUnicode_FromFormat("<symtable entry %U(%ld), line %d>",
ste->ste_name,
PyLong_AS_LONG(ste->ste_id), ste->ste_lineno);
return PyUnicode_FromFormat("<symtable entry %U(%R), line %d>",
ste->ste_name, ste->ste_id, ste->ste_lineno);
}

static void
Expand Down

0 comments on commit 4297499

Please sign in to comment.