From c054a8b1a99c15146c9f2092172d04e5c832ffff Mon Sep 17 00:00:00 2001
From: "Michael W. Hudson" <mwh@python.net>
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