parser: extract helper that creates a dict of aliases
This will be common between revset and templater.
The local variable 'alias' is renamed to 'a' to avoid shadowing the global
'alias' class.
--- a/mercurial/parser.py Mon Feb 29 18:33:30 2016 +0900
+++ b/mercurial/parser.py Mon Feb 29 19:24:15 2016 +0900
@@ -462,3 +462,13 @@
if err:
err = efmt % {'section': cls._section, 'name': name, 'error': err}
return alias(name, tree, args, err, repl)
+
+ @classmethod
+ def buildmap(cls, items):
+ """Parse a list of alias (name, replacement) pairs into a dict of
+ alias objects"""
+ aliases = {}
+ for decl, defn in items:
+ a = cls.build(decl, defn)
+ aliases[a.name] = a
+ return aliases
--- a/mercurial/revset.py Mon Feb 29 18:33:30 2016 +0900
+++ b/mercurial/revset.py Mon Feb 29 19:24:15 2016 +0900
@@ -2320,10 +2320,7 @@
return result
def findaliases(ui, tree, showwarning=None):
- aliases = {}
- for k, v in ui.configitems('revsetalias'):
- alias = _aliasrules.build(k, v)
- aliases[alias.name] = alias
+ aliases = _aliasrules.buildmap(ui.configitems('revsetalias'))
tree = _expandaliases(aliases, tree, [], {})
if showwarning:
# warn about problematic (but not referred) aliases