mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
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)+ [',']]
This commit is contained in:
parent
69c0ff3836
commit
1c917072ca
5 changed files with 180 additions and 141 deletions
|
@ -56,10 +56,11 @@
|
|||
#define sliceop 311
|
||||
#define exprlist 312
|
||||
#define testlist 313
|
||||
#define dictmaker 314
|
||||
#define classdef 315
|
||||
#define arglist 316
|
||||
#define argument 317
|
||||
#define list_iter 318
|
||||
#define list_for 319
|
||||
#define list_if 320
|
||||
#define testlist_safe 314
|
||||
#define dictmaker 315
|
||||
#define classdef 316
|
||||
#define arglist 317
|
||||
#define argument 318
|
||||
#define list_iter 319
|
||||
#define list_for 320
|
||||
#define list_if 321
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue