mercurial/revsetlang.py
changeset 37760 29eb4cafeeb8
parent 37084 f0b6fbea00cf
child 37775 03d7f885d5f2
--- 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))