mercurial/revsetlang.py
changeset 33415 371f59c6a89e
parent 33336 4672db164c98
child 33416 9467d5337292
--- a/mercurial/revsetlang.py	Thu Jul 13 00:35:54 2017 +0900
+++ b/mercurial/revsetlang.py	Sat Jul 08 12:49:46 2017 +0900
@@ -476,11 +476,15 @@
         o = _optimize(x[1], small)
         order = x[2]
         return o[0], (op, o[1], order)
-    elif op in ('dagrange', 'range', 'parent', 'ancestor'):
+    elif op in ('dagrange', 'range'):
         wa, ta = _optimize(x[1], small)
         wb, tb = _optimize(x[2], small)
         order = x[3]
         return wa + wb, (op, ta, tb, order)
+    elif op in ('parent', 'ancestor'):
+        w, t = _optimize(x[1], small)
+        order = x[3]
+        return w, (op, t, x[2], order)
     elif op == 'list':
         ws, ts = zip(*(_optimize(y, small) for y in x[1:]))
         return sum(ws), (op,) + ts