[PATCH 1 of 2] revset: changed generatorset code to remove unnecesary function call
Lucas Moscovicz
lmoscovicz at fb.com
Mon Mar 3 15:10:12 CST 2014
# HG changeset patch
# User Lucas Moscovicz <lmoscovicz at fb.com>
# Date 1393880086 28800
# Mon Mar 03 12:54:46 2014 -0800
# Node ID d4364169b474c6e7a17e3e8656d368998b76ae44
# Parent c36640f9a678ab7bd96ed92a66e0377e24e71b8d
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 --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2281,24 +2281,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
@@ -2307,18 +2296,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
More information about the Mercurial-devel
mailing list