diff mercurial/parser.py @ 31922:0f41f1e3c75c

parser: preserve order of keyword arguments This helps building dict(key1=value1, ...) in deterministic way.
author Yuya Nishihara <yuya@tcha.org>
date Sun, 09 Apr 2017 11:58:27 +0900
parents 2156934b7917
children 90896b61fe26
line wrap: on
line diff
--- a/mercurial/parser.py	Mon Apr 03 22:07:09 2017 +0900
+++ b/mercurial/parser.py	Sun Apr 09 11:58:27 2017 +0900
@@ -154,7 +154,7 @@
                                  "arguments")
                                % {'func': funcname,
                                   'nargs': len(poskeys) + len(keys)})
-    args = {}
+    args = util.sortdict()
     # consume positional arguments
     for k, x in zip(poskeys, trees[:kwstart]):
         args[k] = x
@@ -165,7 +165,7 @@
             args[k] = x
     # remainder should be keyword arguments
     if optkey:
-        args[optkey] = {}
+        args[optkey] = util.sortdict()
     for x in trees[kwstart:]:
         if x[0] != keyvaluenode or x[1][0] != keynode:
             raise error.ParseError(_("%(func)s got an invalid argument")