##// END OF EJS Templates
smartset: fix generatorset.last() to not return the first element (issue5609)
Yuya Nishihara -
r33109:247bae54 default
parent child Browse files
Show More
@@ -766,6 +766,11 b' class generatorset(abstractsmartset):'
766 766 be iterated more than once.
767 767 When asked for membership it generates values until either it finds the
768 768 requested one or has gone through all the elements in the generator
769
770 >>> xs = generatorset([0, 1, 4], iterasc=True)
771 >>> assert xs.last() == xs.last()
772 >>> xs.last() # cached
773 4
769 774 """
770 775 def __init__(self, gen, iterasc=None):
771 776 """
@@ -937,7 +942,7 b' class generatorset(abstractsmartset):'
937 942 # we need to consume all and try again
938 943 for x in self._consumegen():
939 944 pass
940 return self.first()
945 return self.last()
941 946 return next(it(), None)
942 947
943 948 def __repr__(self):
@@ -1337,6 +1337,16 b' Test order of first/last revisions'
1337 1337 0
1338 1338 1
1339 1339
1340 Test scmutil.revsingle() should return the last revision
1341
1342 $ hg debugrevspec -s 'last(0::)'
1343 * set:
1344 <baseset slice=0:1
1345 <generatorset->>
1346 9
1347 $ hg identify -r '0::' --num
1348 9
1349
1340 1350 Test matching
1341 1351
1342 1352 $ log 'matching(6)'
General Comments 0
You need to be logged in to leave comments. Login now