Fixing bug
[#448679] Left to right
* Python/compile.c
(com_dictmaker): Reordered evaluation of dictionaries to follow strict
LTR evaluation.
* Lib/compiler/pycodegen.py
(CodeGenerator.visitDict): Reordered evaluation of dictionaries to
follow strict LTR evaluation.
* Doc/ref/ref5.tex
Documented the general LTR evaluation order idea.
* Misc/NEWS
Documented change in evaluation order of dictionaries.
diff --git a/Python/compile.c b/Python/compile.c
index b438ce4..1755521 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1529,9 +1529,9 @@
It wants the stack to look like (value) (dict) (key) */
com_addbyte(c, DUP_TOP);
com_push(c, 1);
- com_node(c, CHILD(n, i+2)); /* value */
- com_addbyte(c, ROT_TWO);
com_node(c, CHILD(n, i)); /* key */
+ com_node(c, CHILD(n, i+2)); /* value */
+ com_addbyte(c, ROT_THREE);
com_addbyte(c, STORE_SUBSCR);
com_pop(c, 3);
}