revset: added __sub__ mehtod to _addset
authorLucas Moscovicz <lmoscovicz@fb.com>
Fri, 14 Mar 2014 10:22:51 -0700
changeset 20731 88aae5382519
parent 20730 180d47e1fb68
child 20732 728438da3090
revset: added __sub__ mehtod to _addset This method is intended to duck-type baseset, so we will still have _addset as a private class but now will be able to return it without wrapping it into an orderedlazyset or a lazyset.
mercurial/revset.py
--- a/mercurial/revset.py	Fri Mar 14 10:22:29 2014 -0700
+++ b/mercurial/revset.py	Fri Mar 14 10:22:51 2014 -0700
@@ -2419,6 +2419,12 @@
             return orderedlazyset(self, filterfunc, ascending=self._ascending)
         return lazyset(self, filterfunc)
 
+    def __sub__(self, other):
+        filterfunc = lambda r: r not in other
+        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