mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-35224: Reverse evaluation order of key: value in dict comprehensions (GH-14139)
… as proposed in PEP 572; key is now evaluated before value. https://bugs.python.org/issue35224
This commit is contained in:
parent
bb110cc2ed
commit
c8a35417db
8 changed files with 53 additions and 7 deletions
|
@ -2940,8 +2940,8 @@ main_loop:
|
|||
}
|
||||
|
||||
case TARGET(MAP_ADD): {
|
||||
PyObject *key = TOP();
|
||||
PyObject *value = SECOND();
|
||||
PyObject *value = TOP();
|
||||
PyObject *key = SECOND();
|
||||
PyObject *map;
|
||||
int err;
|
||||
STACK_SHRINK(2);
|
||||
|
|
|
@ -4238,10 +4238,10 @@ compiler_sync_comprehension_generator(struct compiler *c,
|
|||
ADDOP_I(c, SET_ADD, gen_index + 1);
|
||||
break;
|
||||
case COMP_DICTCOMP:
|
||||
/* With 'd[k] = v', v is evaluated before k, so we do
|
||||
/* With '{k: v}', k is evaluated before v, so we do
|
||||
the same. */
|
||||
VISIT(c, expr, val);
|
||||
VISIT(c, expr, elt);
|
||||
VISIT(c, expr, val);
|
||||
ADDOP_I(c, MAP_ADD, gen_index + 1);
|
||||
break;
|
||||
default:
|
||||
|
@ -4327,10 +4327,10 @@ compiler_async_comprehension_generator(struct compiler *c,
|
|||
ADDOP_I(c, SET_ADD, gen_index + 1);
|
||||
break;
|
||||
case COMP_DICTCOMP:
|
||||
/* With 'd[k] = v', v is evaluated before k, so we do
|
||||
/* With '{k: v}', k is evaluated before v, so we do
|
||||
the same. */
|
||||
VISIT(c, expr, val);
|
||||
VISIT(c, expr, elt);
|
||||
VISIT(c, expr, val);
|
||||
ADDOP_I(c, MAP_ADD, gen_index + 1);
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue