Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error message for walrus etc. in PEP 695 contexts could be improved #104572

Closed
JelleZijlstra opened this issue May 17, 2023 · 2 comments
Closed
Assignees
Labels
interpreter-core (Objects, Python, Grammar, and Parser dirs) topic-typing type-bug An unexpected behavior, bug, or error

Comments

@JelleZijlstra
Copy link
Member

JelleZijlstra commented May 17, 2023

Before:

>>> type A[T: (x:=3)] = int
  File "<stdin>", line 1
SyntaxError: 'named expression' can not be used within a TypeVar bound

After:

>>> type A[T: (x:=3)] = int
  File "<stdin>", line 1
SyntaxError: named expression cannot be used within a TypeVar bound

("cannot" is one word; the quotes don't really make sense here)

Linked PRs

@JelleZijlstra JelleZijlstra added type-bug An unexpected behavior, bug, or error interpreter-core (Objects, Python, Grammar, and Parser dirs) topic-typing labels May 17, 2023
@JelleZijlstra JelleZijlstra self-assigned this May 17, 2023
JelleZijlstra added a commit to JelleZijlstra/cpython that referenced this issue May 17, 2023
@JelleZijlstra
Copy link
Member Author

It would also be nice if the error display had a ^ pointing to the precise location. Unfortunately that appears to be difficult, as the error is raised in symtable.c where we no longer have access to the original source. The same thing happens with other syntax errors raised in symtable.c:

>>> def f(a, a): pass
... 
  File "<stdin>", line 1
SyntaxError: duplicate argument 'a' in function definition

@terryjreedy
Copy link
Member

The quotes might have come from thinking of 'named expression' as a grammar target, but then it would have to really be in the doc grammar and would need a hyphen. Error messages should save quotes for quotes from the code, as with 'a' above.

carljm added a commit to carljm/cpython that referenced this issue May 17, 2023
* main: (26 commits)
  pythonGH-101520: Move tracemalloc functionality into core, leaving interface in Modules. (python#104508)
  typing: Add more tests for TypeVar (python#104571)
  pythongh-104572: Improve error messages for invalid constructs in PEP 695 contexts (python#104573)
  typing: Use PEP 695 syntax in typing.py (python#104553)
  pythongh-102153: Start stripping C0 control and space chars in `urlsplit` (python#102508)
  pythongh-104469: Update README.txt for _testcapi (pythongh-104529)
  pythonGH-103092: isolate `_elementtree` (python#104561)
  pythongh-104050: Add typing to Argument Clinic converters (python#104547)
  pythonGH-103906: Remove immortal refcounting in the interpreter (pythonGH-103909)
  pythongh-87474: Fix file descriptor leaks in subprocess.Popen (python#96351)
  pythonGH-103092: isolate `pyexpat`  (python#104506)
  pythongh-75367: Fix data descriptor detection in inspect.getattr_static (python#104517)
  pythongh-104050: Add more annotations to `Tools/clinic.py` (python#104544)
  pythongh-104555: Fix isinstance() and issubclass() for runtime-checkable protocols that use PEP 695 (python#104556)
  pythongh-103865: add monitoring support to LOAD_SUPER_ATTR (python#103866)
  CODEOWNERS: Assign new PEP 695 files to myself (python#104551)
  pythonGH-104510: Fix refleaks in `_io` base types (python#104516)
  pythongh-104539: Fix indentation error in logging.config.rst (python#104545)
  pythongh-104050: Don't star-import 'types' in Argument Clinic (python#104543)
  pythongh-104050: Add basic typing to CConverter in clinic.py (python#104538)
  ...
JelleZijlstra added a commit to JelleZijlstra/cpython that referenced this issue May 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
interpreter-core (Objects, Python, Grammar, and Parser dirs) topic-typing type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

3 participants