Message306197
The compiler currently allows parentheses to be omitted if a generator expression is the sole entry in a base class list: >>> class C(x for x in []): pass ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot create 'generator' instances The language reference states that the parentheses around a generator expression are only optional for "calls with only one argument": https://docs.python.org/3/reference/expressions.html#generator-expressions A base class list is not a call, so this should be treated as a syntax error, rather than being handled as equivalent to `class C((x for x in [])): pass` | |
Date | User | Action | Args | 2017-11-14 10:25:04 | ncoghlan | set | recipients: + ncoghlan, serhiy.storchaka | 2017-11-14 10:25:04 | ncoghlan | set | messageid: <1510655104.02.0.213398074469.issue32023@psf.upfronthosting.co.za> | 2017-11-14 10:25:03 | ncoghlan | link | issue32023 messages | 2017-11-14 10:25:03 | ncoghlan | create | | |