[New-bugs-announce] [issue40618] PEG Parser: Invalid targets for augassign and except succeed

Lysandros Nikolaou report at bugs.python.org
Wed May 13 20:15:04 EDT 2020


New submission from Lysandros Nikolaou <lisandrosnik at gmail.com>:

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
... except Exception as a.b:
...     pass
... 
[1]    135956 segmentation fault (core dumped)  ./python

----------
assignee: lys.nikolaou
components: Interpreter Core
messages: 368809
nosy: gvanrossum, lys.nikolaou, pablogsal
priority: normal
severity: normal
status: open
title: PEG Parser: Invalid targets for augassign and except succeed
type: behavior
versions: Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40618>
_______________________________________


More information about the New-bugs-announce mailing list