baseset: drop custom __and__ method
authorPierre-Yves David <pierre-yves.david@fb.com>
Thu, 09 Oct 2014 04:27:25 -0700
changeset 22856 c1546d7400ef
parent 22855 b5492b6bc7e8
child 22857 88e8a18329d3
baseset: drop custom __and__ method This add method is enforcing non-laziness, disabling multiple optimisations. Benchmarks do not spot any significant regression but real usecase may. This even gives some speedup in some cases: revset #15: min(0::) before) wall 0.001247 comb 0.000000 user 0.000000 sys 0.000000 (best of 1814) after) wall 0.000942 comb 0.000000 user 0.000000 sys 0.000000 (best of 2367) This will also be important for further improvement to addset later in this series.
mercurial/revset.py
--- a/mercurial/revset.py	Thu Oct 09 04:27:01 2014 -0700
+++ b/mercurial/revset.py	Thu Oct 09 04:27:25 2014 -0700
@@ -2382,12 +2382,6 @@
 
         return self.filter(lambda x: x not in other)
 
-    def __and__(self, other):
-        """Returns a new object with the intersection of the two collections.
-
-        This is part of the mandatory API for smartset."""
-        return baseset([y for y in self if y in other])
-
     def isascending(self):
         """Returns True if the collection is ascending order, False if not.