]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
Very subtle syntax change: in a list comprehension, the testlist in
authorGuido van Rossum <guido@python.org>
Mon, 15 Oct 2001 15:44:05 +0000 (15:44 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 15 Oct 2001 15:44:05 +0000 (15:44 +0000)
commit1c917072ca2895a196de7f397d4e96bcc577e13d
tree866e2babdb9b21e5869012c583a191898ac68a92
parent69c0ff38362dff3b0a90828b8d787dfb3eb14bc3
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)+ [',']]
Grammar/Grammar
Include/graminit.h
Modules/parsermodule.c
Python/compile.c
Python/graminit.c