mercurial/filesetlang.py
changeset 38831 b975c5801487
parent 38829 7e7e2b2ff284
child 38832 ca4de8ba5b5f
equal deleted inserted replaced
38830:bfd5def3fe02 38831:b975c5801487
   182         w, t = _optimize(x[2])
   182         w, t = _optimize(x[2])
   183         return w, (op, x[1], t)
   183         return w, (op, x[1], t)
   184     if op == 'not':
   184     if op == 'not':
   185         w, t = _optimize(x[1])
   185         w, t = _optimize(x[1])
   186         return w, (op, t)
   186         return w, (op, t)
   187     if op in {'and', 'minus'}:
   187     if op == 'and':
       
   188         wa, ta = _optimize(x[1])
       
   189         wb, tb = _optimize(x[2])
       
   190         if wa <= wb:
       
   191             return wa, (op, ta, tb)
       
   192         else:
       
   193             return wb, (op, tb, ta)
       
   194     if op == 'minus':
   188         wa, ta = _optimize(x[1])
   195         wa, ta = _optimize(x[1])
   189         wb, tb = _optimize(x[2])
   196         wb, tb = _optimize(x[2])
   190         return max(wa, wb), (op, ta, tb)
   197         return max(wa, wb), (op, ta, tb)
   191     if op == 'or':
   198     if op == 'or':
   192         ws, ts = zip(*(_optimize(y) for y in x[1:]))
   199         ws, ts = zip(*(_optimize(y) for y in x[1:]))