Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.11only security fixes3.12only 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