Author: Radu Ciorba <[email protected]>
Branch: py3.6
Changeset: r94930:aac246060deb
Date: 2018-07-29 16:27 +0300
http://bitbucket.org/pypy/pypy/changeset/aac246060deb/
Log: fix async generator bug when yielding a StopIteration
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -199,7 +199,6 @@
except OperationError as e:
if not e.match(space, space.w_StopIteration):
raise
- e.normalize_exception(space)
frame._report_stopiteration_sometimes(w_yf, e)
try:
w_stop_value = space.getattr(e.get_w_value(space),
@@ -679,11 +678,8 @@
def unwrap_value(self, w_value):
if isinstance(w_value, AsyncGenValueWrapper):
- w_value = w_value.w_value
- if self.space.isinstance_w(w_value, self.space.w_tuple):
- # Construct the exception manually, to avoid tuple unpacking.
- w_value = self.space.call_function(self.space.w_StopIteration,
- w_value)
+ w_value = self.space.call_function(self.space.w_StopIteration,
+ w_value.w_value)
raise OperationError(self.space.w_StopIteration, w_value)
else:
return w_value
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit