(original) (raw)
On 4/26/2015 4:32 PM, Paul Sokolovsky
wrote:
Then, is the only logic for proposing \_\_aenter\_\_ is to reinsure against a situation that someone starts to write async context manager, forgets that they write async context manager, and make an \_\_enter\_\_ method there. Then your implementation will announce that "async context manager lacks \_\_aenter\_\_", whereas "my" approach would announce "Async's manager \_\_enter\_\_ did not return awaitable value".Again, is that the distinction you're shooting for, or do I miss
something?
Seems like the missing __aenter__ can easily be detected by the
interpreter at compile time, but the wrong type returned would be at
run time, or after a complex type-analysis done at compile time
(unlikely to be practical).
So I think you've nailed the distinction... but I'm not the expert.