[Proposal]: yield inside of try / catch
jaredpar opened this issue · 0 comments
jaredpar commented
yield inside of try / catch
- Proposed
- Prototype: Not Started
- Implementation: Not Started
- Specification: Not Started
Summary
This expands the use of yield
so it is permitted:
- Inside the
try
portion of atry / catch
block - Inside the
catch
portion of atry / catch
with some restrictions on the presence offinally
Motivation
This is a long standing pain point in iterators that customers bring up with some regularity. The restriction exists largely because of limitations in the native compiler state machine rewriting code at the point iterators were implemented. The Roslyn compiler is capable of performing this type of rewrite, mostly through the innovations around async
method state machines. Given that we should remove this restriction to make iterators more flexible.
Detailed design
Full details are in the proposal document.