New submission from Lysandros Nikolaou <[email protected]>:
While a walrus is valid withing generator expressions in 3.8, it's not in 3.9
and onward.
➜ cpython git:(master) ✗ python3.8
Python 3.8.6 (default, Oct 3 2020, 16:26:47)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> i = 2
>>> a = [1, 2, 3, 4]
>>> (b := i + j for j in a)
<generator object <genexpr> at 0x7f231e78c740>
➜ cpython git:(master) python3.10
Python 3.10.0a1+ (heads/master:b580ed1, Oct 19 2020, 15:52:12)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> i = 2
>>> a = [1, 2, 3, 4]
>>> (b := i + j for j in a)
File "<stdin>", line 1
(b := i + j for j in a)
^
SyntaxError: invalid syntax
This is a regression introduced by the new parser.
----------
components: Interpreter Core
keywords: 3.9regression
messages: 381133
nosy: gvanrossum, lys.nikolaou, pablogsal, terry.reedy
priority: normal
severity: normal
status: open
title: Unparenthesized walrus is not allowed in genexps
type: behavior
versions: Python 3.10, Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue42374>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com