Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework coroutine transform to be more flexible in preparation for async generators #118418

Closed

Conversation

compiler-errors
Copy link
Member

My work-in-progress implementation of async gen blocks has a slightly more involved coroutine desugaring, since the generators must return Poll<Option<T>>, instead of just Poll<T> or Option<T>. This means that the state_adt_ref and state_args for the current coroutine transform TransformVisitor are not sufficient.

This PR inlines the TransformVisitor::coroutine_state_adt_and_variant_idx function into its call-sites, simplifies some logic, and reworks TransformVisitor::make_state to be a bit more clear and easy to read.

@rustbot
Copy link
Collaborator

rustbot commented Nov 28, 2023

r? @cjgillot

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 28, 2023
@rustbot
Copy link
Collaborator

rustbot commented Nov 28, 2023

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@bors
Copy link
Contributor

bors commented Dec 8, 2023

☔ The latest upstream changes (presumably #118420) made this pull request unmergeable. Please resolve the merge conflicts.

@compiler-errors
Copy link
Member Author

This was subsumed by #118420.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants