diff options
author | Guido van Rossum <guido@python.org> | 2001-10-15 15:44:05 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-10-15 15:44:05 (GMT) |
commit | 1c917072ca2895a196de7f397d4e96bcc577e13d (patch) | |
tree | 866e2babdb9b21e5869012c583a191898ac68a92 /Python/compile.c | |
parent | 69c0ff38362dff3b0a90828b8d787dfb3eb14bc3 (diff) | |
download | cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.zip cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.tar.gz cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.tar.bz2 |
Very subtle syntax change: in a list comprehension, the testlist in
"for <var> in <testlist> may no longer be a single test followed by
a comma. This solves SF bug #431886. Note that if the testlist
contains more than one test, a trailing comma is still allowed, for
maximum backward compatibility; but this example is not:
[(x, y) for x in range(10), for y in range(10)]
^
The fix involved creating a new nonterminal 'testlist_safe' whose
definition doesn't allow the trailing comma if there's only one test:
testlist_safe: test [(',' test)+ [',']]
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Python/compile.c b/Python/compile.c index dae2a3e..5120916 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -3710,6 +3710,7 @@ com_node(struct compiling *c, node *n) /* Expression nodes */ case testlist: + case testlist_safe: com_list(c, n, 0); break; case test: |