diff options
| author | Michael W. Hudson <mwh@python.net> | 2004-10-11 15:35:53 +0000 |
|---|---|---|
| committer | Michael W. Hudson <mwh@python.net> | 2004-10-11 15:35:53 +0000 |
| commit | 2d0e7756693c54fb398e1ed2771c4aef4465970c (patch) | |
| tree | d4242db66531215b7b37ac960d4858cd2aec9d07 /Lib | |
| parent | 86f67ad9eb915de791d22a1c4013ef66a05bb354 (diff) | |
| download | cpython-2d0e7756693c54fb398e1ed2771c4aef4465970c.tar.gz | |
This is jiwon's patch to fix:
[ 1042238 ] Lib/compiler chokes on certain genexps
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/compiler/transformer.py | 7 |
1 files changed, 6 insertions, 1 deletions
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. |
