Skip to content

Notes added to "SyntaxError" (and subclasses) are not displayed #109179

Closed
@Delgan

Description

@Delgan

Bug report

Bug description:

Hi.

I noticed that using add_note() with an error of type SyntaxError (or its derived such as IndentationError and TabError) produces a traceback without the expected notes.

Here is a minimal reproducible example:

try:
    exec("a = 7 *")
except SyntaxError as e:
    e.add_note("Note")
    raise

Or alternatively:

e = SyntaxError("invalid syntax", ("<string>", 1, 8, "a = 7 *\n", 1, 8))
e.add_note("Note")
raise e

The output of these examples is:

Traceback (most recent call last):
  File "/home/delgan/test.py", line 2, in <module>
    exec("a = 7 *")
  File "<string>", line 1
    a = 7 *
           ^
SyntaxError: invalid syntax

The expected "Note" is missing.

Since neither PEP 678 nor the documentation mention that SyntaxError is not fully compatible with notes, I assume that this is probably a bug.

CPython versions tested on:

3.11, 3.12

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.11only security fixes3.12bugs and security fixes3.13bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions