-
-
Notifications
You must be signed in to change notification settings - Fork 17.7k
Regression in async generator and fmt internals: loss of Send #93274
Copy link
Copy link
Closed
Labels
A-async-awaitArea: Async & AwaitArea: Async & AwaitC-bugCategory: This is a bug.Category: This is a bug.P-highHigh priorityHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.Performance or correctness regression from stable to nightly.
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
A-async-awaitArea: Async & AwaitArea: Async & AwaitC-bugCategory: This is a bug.Category: This is a bug.P-highHigh priorityHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.Performance or correctness regression from stable to nightly.
Context
This has already tripped up some people which seem to get quite confused with this error message, so I'd rather we not regress here:
Code
I tried this code:
I expected to see this happen: Code compiles fine: the type of
foo()isSend.Instead, this happened: The type of
foo()is not send, since the backing state-machine generator produced for it now captures part of thefmtinternals involving a&reference to theextern { type Opaque; }, which is notSync.Version it worked on
It most recently worked on: beta
Version with regression
rustc --version --verbose:@rustbot modify labels: +regression-from-stable-to-nightly -regression-untriaged