In REPL `dis.distb()` raise AttributeError when the previous input fails to compile
Offen
Dieses Issue hat noch niemand übernommen.
stdlib
topic-repl
type-bug
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug report
Bug description:
in REPL input following sequentially
import dis- some invalid code
dis.distb()
>>> import dis
>>> ???
File "<stdin>", line 1
???
^
SyntaxError: invalid syntax
>>> dis.distb()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
dis.distb()
~~~~~~~~~^^
File "/home/dev/cpython/Lib/dis.py", line 150, in distb
while tb.tb_next: tb = tb.tb_next
^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'tb_next'
It looks like dis.distb() doesn’t handle the case where the previous exception’s traceback could be None in the REPL.
CPython versions tested on:
3.14, CPython main branch
Operating systems tested on:
Windows
Linked PRs
- gh-148317
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in Lib/dis.py bei dis.distb() in Zeile 150 und reproduziere die gemeldete REPL-Sequenz: import dis, gib ungültigen Code ein und rufe anschließend dis.distb() auf. Fertig ist es, wenn der letzte Befehl nach dem vorherigen Kompilierungsfehler nicht mehr AttributeError auslöst; prüfe vor dem Beginn die verlinkte Arbeit gh-148317.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100