gh-148306: Fix dis.distb() crash when traceback is None#148317
gh-148306: Fix dis.distb() crash when traceback is None#148317Ignyra wants to merge 1 commit intopython:mainfrom
Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
a6f5978 to
fe1e2f3
Compare
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
fe1e2f3 to
fe4fb9a
Compare
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
fe4fb9a to
25c82e9
Compare
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Summary
Prevent
dis.distb()from failing withAttributeErrorwhen the last exception is aSyntaxError.Bug
A
SyntaxErroris raised while parsing or compiling source, before any Python bytecode is executed, so there is no traceback available fordis.distb()to disassemble.distb()currently assumes a traceback is present and unconditionally accesses tb.tb_next.Fix
If the last exception is a
SyntaxError, raiseRuntimeError("cannot disassemble a SyntaxError")instead of failing with anAttributeError.Also add a regression test simulating REPL state for a
SyntaxError.This is my first contribution to CPython. I’d really appreciate any feedback. Thanks!
dis.distb()raise AttributeError when the previous input fails to compile #148306