changeset 20730:180d47e1fb68

revset: added __and__ method to _addset This method is intended to duck-type baseset, so we will still have _addset as a private class but we will be able to return it without wrapping it into an orderedlazyset or a lazyset.
author Lucas Moscovicz <lmoscovicz@fb.com>
date Fri, 14 Mar 2014 10:22:29 -0700
parents caa69cb223b0
children 88aae5382519
files mercurial/revset.py
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revset.py	Fri Mar 14 10:21:56 2014 -0700
+++ b/mercurial/revset.py	Fri Mar 14 10:22:29 2014 -0700
@@ -2413,6 +2413,12 @@
             if self._ascending:
                 self.reverse()
 
+    def __and__(self, other):
+        filterfunc = other.__contains__
+        if self._ascending is not None:
+            return orderedlazyset(self, filterfunc, ascending=self._ascending)
+        return lazyset(self, filterfunc)
+
     def _iterator(self):
         """Iterate over both collections without repeating elements