Vladimir Matveev <desco...@gmail.com> added the comment:
No, I don't think so but I can definitely make one. A few questions first: - having PySendResult as a result type of PyIterSend seems ok, however prefix for each concrete value (PYGEN_*) is not aligned with the prefix of the function itself (PyIter_) - should it also deal with tstate->c_tracefunc (probably not) or just be something like ``` PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **result) { _Py_IDENTIFIER(send); assert(result != NULL); if (PyGen_CheckExact(iter) || PyCoro_CheckExact(iter)) { return PyGen_Send((PyGenObject *)iter, arg, result); } if (arg == Py_None && Py_TYPE(iter)->tp_iternext != NULL) { *result = Py_TYPE(iter)->tp_iternext(iter); } else { *result = _PyObject_CallMethodIdOneArg(iter, &PyId_send, arg); } if (*result == NULL) { if (_PyGen_FetchStopIterationValue(result) == 0) { return PYGEN_RETURN; } return PYGEN_ERROR; } return PYGEN_NEXT; } ``` ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue41756> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com