Mercurial > hg
changeset 28690:b56bf98c8afb
revset: drop redundant check for unknown alias arguments
Since _parsealiasdefn() rejects unknown alias arguments, _checkaliasarg() is
unnecessary. New test is added to make sure unknown '$n' symbols are rejected.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 14 Feb 2016 20:27:08 +0900 |
parents | a14732e08fec |
children | a04baf9c063b |
files | mercurial/revset.py tests/test-revset.t |
diffstat | 2 files changed, 9 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Sun Feb 14 19:48:33 2016 +0900 +++ b/mercurial/revset.py Sun Feb 14 20:27:08 2016 +0900 @@ -2267,17 +2267,6 @@ return tree[1] return None -def _checkaliasarg(tree, known=None): - """Check tree contains no _aliasarg construct or only ones which - value is in known. Used to avoid alias placeholders injection. - """ - if isinstance(tree, tuple): - arg = _getaliasarg(tree) - if arg is not None and (not known or arg not in known): - raise error.UnknownIdentifier('_aliasarg', []) - for t in tree: - _checkaliasarg(t, known) - # the set of valid characters for the initial letter of symbols in # alias declarations and definitions _aliassyminitletters = set(c for c in [chr(i) for i in xrange(256)] @@ -2443,8 +2432,6 @@ try: self.replacement = _parsealiasdefn(value, self.args) - # Check for placeholder injection - _checkaliasarg(self.replacement, self.args) except error.ParseError as inst: self.error = _('failed to parse the definition of revset alias' ' "%s": %s') % (self.name, parseerrordetail(inst))
--- a/tests/test-revset.t Sun Feb 14 19:48:33 2016 +0900 +++ b/tests/test-revset.t Sun Feb 14 20:27:08 2016 +0900 @@ -1820,6 +1820,15 @@ <spanset+ 0:9>> 0 +test unknown reference: + + $ try "unknownref(0)" --config 'revsetalias.unknownref($1)=$1:$2' + (func + ('symbol', 'unknownref') + ('symbol', '0')) + abort: failed to parse the definition of revset alias "unknownref": '$' not for alias arguments + [255] + $ hg debugrevspec --debug --config revsetalias.anotherbadone='branch(' "tip" ('symbol', 'tip') warning: failed to parse the definition of revset alias "anotherbadone": at 7: not a prefix: end