changeset 25145:3553163bb736

revset: use 'next()' to detect end of iteration in 'last' The 'next()' built-in can return a default value, allow to get rid of the confusing try/except code flow.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Sun, 17 May 2015 18:00:38 -0700
parents 81a395447b34
children f542a2c89b60
files mercurial/revset.py
diffstat 1 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revset.py	Sun May 17 17:58:39 2015 -0700
+++ b/mercurial/revset.py	Sun May 17 18:00:38 2015 -0700
@@ -1172,12 +1172,11 @@
     result = []
     it = iter(os)
     for x in xrange(lim):
-        try:
-            y = it.next()
-            if y in ss:
-                result.append(y)
-        except (StopIteration):
+        y = next(it, None)
+        if y is None:
             break
+        elif y in ss:
+            result.append(y)
     return baseset(result)
 
 def maxrev(repo, subset, x):