From: Michael W. Hudson Date: Mon, 11 Oct 2004 15:35:53 +0000 (+0000) Subject: This is jiwon's patch to fix: X-Git-Tag: v2.4b1~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c054a8b1a99c15146c9f2092172d04e5c832ffff;p=python This is jiwon's patch to fix: [ 1042238 ] Lib/compiler chokes on certain genexps --- diff --git a/Lib/compiler/transformer.py b/Lib/compiler/transformer.py index 34ad5eadd1..840d79f380 100644 --- a/Lib/compiler/transformer.py +++ b/Lib/compiler/transformer.py @@ -1165,8 +1165,13 @@ class Transformer: if node[0] == token.STAR or node[0] == token.DOUBLESTAR: break kw, result = self.com_argument(node, kw) - if len_nodelist != 2 and isinstance(result, GenExpr): + + if len_nodelist != 2 and isinstance(result, GenExpr) \ + and len(node) == 3 and node[2][0] == symbol.gen_for: + # allow f(x for x in y), but reject f(x for x in y, 1) + # should use f((x for x in y), 1) instead of f(x for x in y, 1) raise SyntaxError, 'generator expression needs parenthesis' + args.append(result) else: # No broken by star arg, so skip the last one we processed.