comparison mercurial/revset.py @ 23127:7361d8244efb stable

addset: fix `first` and `last` on sorted addset (issue4426) The lazy sorting were not enforced on addset. This was made visible through MQ.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Sat, 01 Nov 2014 22:58:30 +0000
parents c23c03605c59
children e53f6b72a0e4 0c432696dae3
comparison
equal deleted inserted replaced
23126:8b4a8a9176e2 23127:7361d8244efb
2640 self._list.reverse() 2640 self._list.reverse()
2641 else: 2641 else:
2642 self._ascending = not self._ascending 2642 self._ascending = not self._ascending
2643 2643
2644 def first(self): 2644 def first(self):
2645 if self: 2645 for x in self:
2646 return self._list.first() 2646 return x
2647 return None 2647 return None
2648 2648
2649 def last(self): 2649 def last(self):
2650 if self: 2650 self.reverse()
2651 return self._list.last() 2651 val = self.first()
2652 return None 2652 self.reverse()
2653 return val
2653 2654
2654 class generatorset(abstractsmartset): 2655 class generatorset(abstractsmartset):
2655 """Wrap a generator for lazy iteration 2656 """Wrap a generator for lazy iteration
2656 2657
2657 Wrapper structure for generators that provides lazy membership and can 2658 Wrapper structure for generators that provides lazy membership and can