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.
This commit is contained in:
Gustavo Niemeyer 2002-12-16 13:54:02 +00:00
parent c389ec8d55
commit 78429a6aa6
4 changed files with 26 additions and 4 deletions

View file

@ -1529,9 +1529,9 @@ com_dictmaker(struct compiling *c, node *n)
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);
}