--- a/mercurial/revsetlang.py Thu Mar 01 11:37:16 2018 -0500
+++ b/mercurial/revsetlang.py Tue Apr 10 16:06:52 2018 +0200
@@ -352,6 +352,9 @@
elif op == 'keyvalue':
return (op, x[1], _analyze(x[2]))
elif op == 'func':
+ f = getsymbol(x[1])
+ if f == 'revset':
+ return _analyze(x[2])
return (op, x[1], _analyze(x[2]))
raise ValueError('invalid operator %r' % op)
@@ -482,6 +485,8 @@
...
ParseError: ('invalid token', 4)
"""
+ if lookup and spec.startswith('revset(') and spec.endswith(')'):
+ lookup = None
p = parser.parser(elements)
tree, pos = p.parse(tokenize(spec, lookup=lookup,
syminitletters=syminitletters))