New submission from Nick Coghlan <ncogh...@gmail.com>: 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` ---------- components: Interpreter Core messages: 306197 nosy: ncoghlan, serhiy.storchaka priority: low severity: normal status: open title: Always require parentheses for genexps in base class lists type: behavior versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32023> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com