# HG changeset patch # User Lucas Moscovicz # Date 1393880086 28800 # Node ID f2bb7ba5945699e332d9b78d619bac87b7287874 # Parent e993f065e17ce449ced42dff4e03f6fbd284df11 revset: changed generatorset code to remove unnecesary function call Removed _nextitem() method, now __iter__ has that logic and __contains__ uses __iter__ to check for membership. diff -r e993f065e17c -r f2bb7ba59456 mercurial/revset.py --- a/mercurial/revset.py Mon Mar 03 15:50:41 2014 +0900 +++ b/mercurial/revset.py Mon Mar 03 12:54:46 2014 -0800 @@ -2270,24 +2270,13 @@ self._genlist = baseset([]) self._iterated = False - def _nextitem(self): - l = self._iter.next() - self._cache[l] = True - self._genlist.append(l) - return l - def __contains__(self, x): if x in self._cache: return self._cache[x] - self._iterated = True - while True: - try: - l = self._nextitem() - if l == x: - return True - except (StopIteration): - break + for l in self: + if l == x: + return True self._cache[x] = False return False @@ -2296,18 +2285,13 @@ if self._iterated: for l in self._genlist: yield l - while True: - try: - item = self._nextitem() - yield item - except (StopIteration): - break else: self._iterated = True - for item in self._gen: - self._cache[item] = True - self._genlist.append(item) - yield item + + for item in self._gen: + self._cache[item] = True + self._genlist.append(item) + yield item def set(self): return self