From c054a8b1a99c15146c9f2092172d04e5c832ffff Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Mon, 11 Oct 2004 15:35:53 +0000 Subject: This is jiwon's patch to fix: [ 1042238 ] Lib/compiler chokes on certain genexps --- Lib/compiler/transformer.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/compiler/transformer.py b/Lib/compiler/transformer.py index 34ad5ea..840d79f 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. -- cgit v0.12