mercurial/filesetlang.py
changeset 38831 b975c5801487
parent 38829 7e7e2b2ff284
child 38832 ca4de8ba5b5f
--- a/mercurial/filesetlang.py	Sun Jul 22 11:47:29 2018 +0900
+++ b/mercurial/filesetlang.py	Sat Jul 21 16:41:45 2018 +0900
@@ -184,7 +184,14 @@
     if op == 'not':
         w, t = _optimize(x[1])
         return w, (op, t)
-    if op in {'and', 'minus'}:
+    if op == 'and':
+        wa, ta = _optimize(x[1])
+        wb, tb = _optimize(x[2])
+        if wa <= wb:
+            return wa, (op, ta, tb)
+        else:
+            return wb, (op, tb, ta)
+    if op == 'minus':
         wa, ta = _optimize(x[1])
         wb, tb = _optimize(x[2])
         return max(wa, wb), (op, ta, tb)