You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PEG Parser: Invalid targets for augassign and except succeed #84798
Tuples and lists, which are invalid augmented assignment targets, currently get successfully parsed, without failing.
➜ cpython git:(targets-fix) ✗ ./python -X oldparser
Python 3.9.0a6+ (heads/master-dirty:75cd8e48c6, May 14 2020, 03:01:42)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> (a, b) += (1, 2)
File "<stdin>", line 1
SyntaxError: illegal expression for augmented assignment
➜ cpython git:(pr/20076) ./python
Python 3.9.0a6+ (heads/pr/20076:bcf5be2772, May 14 2020, 02:15:37)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> (a, b) +=1
SystemError: invalid node type (26) for augmented assignment
We also accept arbitrary targets in except clauses, while we should only be accepting NAME nodes:
➜ cpython git:(master) ./python
Python 3.9.0a6+ (heads/master:75cd8e48c6, May 14 2020, 03:14:03)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> try:
... pass
... exceptExceptionas a.b:
... pass
...
[1] 135956 segmentation fault (core dumped) ./python
Activity
lysnikolaou commentedon May 14, 2020
Tuples and lists, which are invalid augmented assignment targets, currently get successfully parsed, without failing.
We also accept arbitrary targets in
exceptclauses, while we should only be accepting NAME nodes:pablogsal commentedon May 14, 2020
New changeset ce21cfc by Lysandros Nikolaou in branch 'master':
bpo-40618: Disallow invalid targets in augassign and except clauses (GH-20083)
ce21cfc