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
(cherry picked from commit c8a35417db8853a253517a3e5190e174075c6384)
Co-authored-by: Jörn Heissler <joernheissler@users.noreply.github.com>
diff --git a/Python/compile.c b/Python/compile.c
index 4d3ecfe..7bdf406 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -4238,10 +4238,10 @@
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 @@
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: