From 90dbf8a8a20913e7a75306523ff48e327bf13235 Mon Sep 17 00:00:00 2001
From: Stefan Behnel <scoder@users.berlios.de>
Date: Sun, 30 Nov 2008 06:06:43 +0100
Subject: [PATCH] extended test case for returning from for loops

---
 tests/run/r_forloop.pyx | 45 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/tests/run/r_forloop.pyx b/tests/run/r_forloop.pyx
index cfb4683a1..de6886ea2 100644
--- a/tests/run/r_forloop.pyx
+++ b/tests/run/r_forloop.pyx
@@ -4,46 +4,91 @@ __doc__ = u"""
   Spam!
   Spam!
   Spam!
+  >>> go_py_ret()
+  2
 
   >>> go_c()
   Spam!
   Spam!
   Spam!
   Spam!
+  >>> go_c_ret()
+  2
 
   >>> go_list()
   Spam!
   Spam!
   Spam!
   Spam!
+  >>> go_list_ret()
+  2
 
   >>> go_tuple()
   Spam!
   Spam!
   Spam!
   Spam!
+  >>> go_tuple_ret()
+  2
+
+  >>> go_dict()
+  Spam!
+  Spam!
+  Spam!
+  Spam!
+  >>> go_dict_ret()
+  2
 """
 
 def go_py():
     for i in range(4):
         print u"Spam!"
 
+def go_py_ret():
+    for i in range(4):
+        if i > 1:
+            return i
+
 def go_c():
     cdef int i
     for i in range(4):
         print u"Spam!"
 
+def go_c_ret():
+    cdef int i
+    for i in range(4):
+        if i > 1:
+            return i
+
 def go_list():
     cdef list l = range(4)
     for i in l:
         print u"Spam!"
 
+def go_list_ret():
+    cdef list l = range(4)
+    for i in l:
+        if i > 1:
+            return i
+ 
 def go_tuple():
     cdef tuple t = tuple(range(4))
     for i in t:
         print u"Spam!"
 
+def go_tuple_ret():
+    cdef tuple t = tuple(range(4))
+    for i in t:
+        if i > 1:
+            return i
+
 def go_dict():
     cdef dict d = dict(zip(range(4), range(4)))
     for i in d:
         print u"Spam!"
+
+def go_dict_ret():
+    cdef dict d = dict(zip(range(4), range(4)))
+    for i in d:
+        if i > 1 and i < 3:
+            return i
-- 
2.30.9