##// END OF EJS Templates
parser: reorder alias expansion routine to return early...
Yuya Nishihara -
r28896:4c76a032 default
parent child Browse files
Show More
@@ -509,31 +509,29 b' class basealiasrules(object):'
509 if not isinstance(tree, tuple):
509 if not isinstance(tree, tuple):
510 return tree
510 return tree
511 a = cls._getalias(aliases, tree)
511 a = cls._getalias(aliases, tree)
512 if a is not None:
512 if a is None:
513 if a.error:
513 return tuple(cls._expand(aliases, t, expanding, cache)
514 raise error.Abort(a.error)
514 for t in tree)
515 if a in expanding:
515 if a.error:
516 raise error.ParseError(_('infinite expansion of %(section)s '
516 raise error.Abort(a.error)
517 '"%(name)s" detected')
517 if a in expanding:
518 % {'section': cls._section,
518 raise error.ParseError(_('infinite expansion of %(section)s '
519 'name': a.name})
519 '"%(name)s" detected')
520 expanding.append(a)
520 % {'section': cls._section, 'name': a.name})
521 if a.name not in cache:
521 expanding.append(a)
522 cache[a.name] = cls._expand(aliases, a.replacement, expanding,
522 if a.name not in cache:
523 cache)
523 cache[a.name] = cls._expand(aliases, a.replacement, expanding,
524 result = cache[a.name]
524 cache)
525 expanding.pop()
525 result = cache[a.name]
526 if a.args is not None:
526 expanding.pop()
527 l = cls._getlist(tree[2])
527 if a.args is None:
528 if len(l) != len(a.args):
528 return result
529 raise error.ParseError(_('invalid number of arguments: %d')
529 l = cls._getlist(tree[2])
530 % len(l))
530 if len(l) != len(a.args):
531 l = [cls._expand(aliases, t, [], cache) for t in l]
531 raise error.ParseError(_('invalid number of arguments: %d')
532 result = cls._expandargs(result, dict(zip(a.args, l)))
532 % len(l))
533 else:
533 l = [cls._expand(aliases, t, [], cache) for t in l]
534 result = tuple(cls._expand(aliases, t, expanding, cache)
534 return cls._expandargs(result, dict(zip(a.args, l)))
535 for t in tree)
536 return result
537
535
538 @classmethod
536 @classmethod
539 def expand(cls, aliases, tree):
537 def expand(cls, aliases, tree):
General Comments 0
You need to be logged in to leave comments. Login now