summaryrefslogtreecommitdiffstats
path: root/Doc/c-api
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2019-08-25 13:45:40 (GMT)
committerGitHub <noreply@github.com>2019-08-25 13:45:40 (GMT)
commit5dbe0f59b7a4f39c7c606b48056bc29e406ebf78 (patch)
tree9dd53ae948d0e49719d85d5e7814a6b1db61fdf3 /Doc/c-api
parentce6a070414ed1e1374d1e6212bfbff61b6d5d755 (diff)
downloadcpython-5dbe0f59b7a4f39c7c606b48056bc29e406ebf78.zip
cpython-5dbe0f59b7a4f39c7c606b48056bc29e406ebf78.tar.gz
cpython-5dbe0f59b7a4f39c7c606b48056bc29e406ebf78.tar.bz2
bpo-37757: Disallow PEP 572 cases that expose implementation details (GH-15131)
- drop TargetScopeError in favour of raising SyntaxError directly as per the updated PEP 572 - comprehension iteration variables are explicitly local, but named expression targets in comprehensions are nonlocal or global. Raise SyntaxError as specified in PEP 572 - named expression targets in the outermost iterable of a comprehension have an ambiguous target scope. Avoid resolving that question now by raising SyntaxError. PEP 572 originally required this only for cases where the bound name conflicts with the iteration variable in the comprehension, but CPython can't easily restrict the exception to that case (as it doesn't know the target variable names when visiting the outermost iterator expression)
Diffstat (limited to 'Doc/c-api')
-rw-r--r--Doc/c-api/exceptions.rst3
1 files changed, 0 insertions, 3 deletions
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index d817393..25bb657 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -809,7 +809,6 @@ the variables:
single: PyExc_SystemError
single: PyExc_SystemExit
single: PyExc_TabError
- single: PyExc_TargetScopeError
single: PyExc_TimeoutError
single: PyExc_TypeError
single: PyExc_UnboundLocalError
@@ -911,8 +910,6 @@ the variables:
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_TabError` | :exc:`TabError` | |
+-----------------------------------------+---------------------------------+----------+
-| :c:data:`PyExc_TargetScopeError` | :exc:`TargetScopeError` | |
-+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_TimeoutError` | :exc:`TimeoutError` | |
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_TypeError` | :exc:`TypeError` | |