]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-29587: Make gen.throw() chain exceptions with yield from (GH-19858)
authorChris Jerdonek <chris.jerdonek@gmail.com>
Wed, 13 May 2020 23:18:27 +0000 (16:18 -0700)
committerGitHub <noreply@github.com>
Wed, 13 May 2020 23:18:27 +0000 (16:18 -0700)
commit75cd8e48c62c97fdb9d9a94fd2335be06084471d
treebcd719b2442c302d0fb5100fb57894b6517ce090
parentd6fb53fe42d83a10f1372dd92ffaa6a01d2feffb
bpo-29587: Make gen.throw() chain exceptions with yield from (GH-19858)

The previous commits on bpo-29587 got exception chaining working
with gen.throw() in the `yield` case. This patch also gets the
`yield from` case working.

As a consequence, implicit exception chaining now also works in
the asyncio scenario of awaiting on a task when an exception is
already active.

Tests are included for both the asyncio case and the pure
generator-only case.
Lib/test/test_asyncio/test_tasks.py
Lib/test/test_generators.py
Objects/genobject.c