Skip to content

[Proposal]: yield inside of try / catch #8414

@jaredpar

Description

@jaredpar

yield inside of try / catch

Summary

This expands the use of yield so it is permitted:

  • Inside the try portion of a try / catch block
  • Inside the catch portion of a try / catch with some restrictions on the presence of finally

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.

#8413

Design meetings

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions