Commit 9447ca3e authored by Stefan Behnel's avatar Stefan Behnel

additional tests

parent af9fb6bc
...@@ -13,6 +13,35 @@ def list_comp_in_closure(): ...@@ -13,6 +13,35 @@ def list_comp_in_closure():
assert f() == 'abc' # don't leak in Py3 code assert f() == 'abc' # don't leak in Py3 code
return result return result
def pytyped_list_comp_in_closure():
"""
>>> pytyped_list_comp_in_closure()
[0, 4, 8]
"""
cdef object x
x = 'abc'
def f():
return x
result = [x*2 for x in range(5) if x % 2 == 0]
assert x == 'abc' # don't leak in Py3 code
assert f() == 'abc' # don't leak in Py3 code
return result
def pytyped_list_comp_in_closure_repeated():
"""
>>> pytyped_list_comp_in_closure_repeated()
[0, 4, 8]
"""
cdef object x
x = 'abc'
def f():
return x
for i in range(3):
result = [x*2 for x in range(5) if x % 2 == 0]
assert x == 'abc' # don't leak in Py3 code
assert f() == 'abc' # don't leak in Py3 code
return result
def genexpr_in_closure(): def genexpr_in_closure():
""" """
>>> genexpr_in_closure() >>> genexpr_in_closure()
...@@ -26,6 +55,35 @@ def genexpr_in_closure(): ...@@ -26,6 +55,35 @@ def genexpr_in_closure():
assert f() == 'abc' # don't leak in Py3 code assert f() == 'abc' # don't leak in Py3 code
return result return result
def pytyped_genexpr_in_closure():
"""
>>> pytyped_genexpr_in_closure()
[0, 4, 8]
"""
cdef object x
x = 'abc'
def f():
return x
result = list( x*2 for x in range(5) if x % 2 == 0 )
assert x == 'abc' # don't leak in Py3 code
assert f() == 'abc' # don't leak in Py3 code
return result
def pytyped_genexpr_in_closure_repeated():
"""
>>> pytyped_genexpr_in_closure_repeated()
[0, 4, 8]
"""
cdef object x
x = 'abc'
def f():
return x
for i in range(3):
result = list( x*2 for x in range(5) if x % 2 == 0 )
assert x == 'abc' # don't leak in Py3 code
assert f() == 'abc' # don't leak in Py3 code
return result
def genexpr_scope_in_closure(): def genexpr_scope_in_closure():
""" """
>>> genexpr_scope_in_closure() >>> genexpr_scope_in_closure()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment