Wed, 01 Oct 2014 15:14:36 -0500 revset: introduce an abstractsmartset class
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Oct 2014 15:14:36 -0500] rev 22692
revset: introduce an abstractsmartset class This class documents all methods required by a smartset. This makes it easier for people to respect the API and ensure we fail loudly when something does not. It will later also contain common default implementations for multiple methods, making it easier to have smartset classes with minimal work.
Wed, 01 Oct 2014 15:03:16 -0500 revset: add a `__nonzero__` to baseset
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Oct 2014 15:03:16 -0500] rev 22691
revset: add a `__nonzero__` to baseset We are about to add a base class for `baseset` with an abstract `__nonzero__` method. So we need this method to be explicitly defined to avoid issues. The built-in list object apparently does not have a `__nonzero__` and relies on `__len__` for this purpose?
Wed, 01 Oct 2014 15:50:54 -0500 revset: drop isinstance(baseset) in spanset.__sub__
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Oct 2014 15:50:54 -0500] rev 22690
revset: drop isinstance(baseset) in spanset.__sub__ As baseset now has a fast __contains___ operator, this `baseset.set()` dance is no longer needed. No regressions are visible in the benchmark.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -3 +3 +10 +30 +100 +300 +1000 +3000 +10000 tip