Message311052
Example (minimal version of https://github.com/python-trio/trio/issues/425):
-----
async def open_file():
pass
async def main():
async with open_file(): # Should be 'async with await open_file()'
pass
coro = main()
coro.send(None)
-----
Here we accidentally left out an 'await' on the call to 'open_file', so the 'async with' tries to look up 'CoroutineType.__aexit__', which obviously doesn't exist, and the program crashes with an AttributeError("__aexit__"). Yet weirdly, this doesn't trigger a warning about 'open_file' being unawaited. It should!
Yury's theory: maybe BEFORE_ASYNC_WITH's error-handling path is forgetting to DECREF the object. |
|
Date |
User |
Action |
Args |
2018-01-29 04:06:17 | njs | set | recipients:
+ njs, giampaolo.rodola, asvetlov, yselivanov |
2018-01-29 04:06:16 | njs | set | messageid: <1517198776.9.0.467229070634.issue32703@psf.upfronthosting.co.za> |
2018-01-29 04:06:16 | njs | link | issue32703 messages |
2018-01-29 04:06:16 | njs | create | |
|