merge 3.4 (#21209)
This commit is contained in:
commit
a548a30fed
|
@ -993,6 +993,25 @@ class TestPEP380Operation(unittest.TestCase):
|
|||
del inner_gen
|
||||
gc_collect()
|
||||
|
||||
def test_send_tuple_with_custom_generator(self):
|
||||
# See issue #21209.
|
||||
class MyGen:
|
||||
def __iter__(self):
|
||||
return self
|
||||
def __next__(self):
|
||||
return 42
|
||||
def send(self, what):
|
||||
nonlocal v
|
||||
v = what
|
||||
return None
|
||||
def outer():
|
||||
v = yield from MyGen()
|
||||
g = outer()
|
||||
next(g)
|
||||
v = None
|
||||
g.send((1, 2, 3, 4))
|
||||
self.assertEqual(v, (1, 2, 3, 4))
|
||||
|
||||
|
||||
def test_main():
|
||||
from test import support
|
||||
|
|
|
@ -10,6 +10,9 @@ Release date: TBA
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #21209: Fix sending tuples to custom generator objects with the yield
|
||||
from syntax.
|
||||
|
||||
- Issue #21193: pow(a, b, c) now raises ValueError rather than TypeError when b
|
||||
is negative. Patch by Josh Rosenberg.
|
||||
|
||||
|
|
|
@ -1926,7 +1926,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
|||
if (v == Py_None)
|
||||
retval = Py_TYPE(reciever)->tp_iternext(reciever);
|
||||
else
|
||||
retval = _PyObject_CallMethodId(reciever, &PyId_send, "O", v);
|
||||
retval = _PyObject_CallMethodIdObjArgs(reciever, &PyId_send, v, NULL);
|
||||
}
|
||||
Py_DECREF(v);
|
||||
if (retval == NULL) {
|
||||
|
|
Loading…
Reference in New Issue