mercurial/parser.py
changeset 28897 c1f254138f44
parent 28896 4c76a032ec7e
child 28898 8d398155bfda
equal deleted inserted replaced
28896:4c76a032ec7e 28897:c1f254138f44
   516             raise error.Abort(a.error)
   516             raise error.Abort(a.error)
   517         if a in expanding:
   517         if a in expanding:
   518             raise error.ParseError(_('infinite expansion of %(section)s '
   518             raise error.ParseError(_('infinite expansion of %(section)s '
   519                                      '"%(name)s" detected')
   519                                      '"%(name)s" detected')
   520                                    % {'section': cls._section, 'name': a.name})
   520                                    % {'section': cls._section, 'name': a.name})
       
   521         # get cacheable replacement tree by expanding aliases recursively
   521         expanding.append(a)
   522         expanding.append(a)
   522         if a.name not in cache:
   523         if a.name not in cache:
   523             cache[a.name] = cls._expand(aliases, a.replacement, expanding,
   524             cache[a.name] = cls._expand(aliases, a.replacement, expanding,
   524                                         cache)
   525                                         cache)
   525         result = cache[a.name]
   526         result = cache[a.name]
   526         expanding.pop()
   527         expanding.pop()
   527         if a.args is None:
   528         if a.args is None:
   528             return result
   529             return result
       
   530         # substitute function arguments in replacement tree
   529         l = cls._getlist(tree[2])
   531         l = cls._getlist(tree[2])
   530         if len(l) != len(a.args):
   532         if len(l) != len(a.args):
   531             raise error.ParseError(_('invalid number of arguments: %d')
   533             raise error.ParseError(_('invalid number of arguments: %d')
   532                                    % len(l))
   534                                    % len(l))
   533         l = [cls._expand(aliases, t, [], cache) for t in l]
   535         l = [cls._expand(aliases, t, [], cache) for t in l]