Skip to content

Fix FnOnce impl for AsyncFn/AsyncFnMut self-borrowing closures in new solver #141359

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

Merged
merged 2 commits into from
May 22, 2025

Conversation

compiler-errors
Copy link
Member

@compiler-errors compiler-errors commented May 21, 2025

This only affects closures that are "AsyncFn/AsyncFnMut" in their calling capability that are being called with the FnOnce trait.

fixes rust-lang/trait-system-refactor-initiative#217

r? lcnr

@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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels May 21, 2025
@lcnr
Copy link
Contributor

lcnr commented May 21, 2025

This only affects closures that are only "AsyncFnOnce" in their calling capability that are being called with the FnOnce trait.

That are not AsyncFnOnce? as in, it affects async Fn(Mut) closures?

@compiler-errors
Copy link
Member Author

Oops yep. Got the polarity backwards.

@compiler-errors compiler-errors changed the title Fix FnOnce impl for AsyncFnOnce self-borrowing closures in new solver Fix FnOnce impl for AsyncFn/AsyncFnMut self-borrowing closures in new solver May 21, 2025
@lcnr
Copy link
Contributor

lcnr commented May 22, 2025

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented May 22, 2025

📌 Commit e0f8055 has been approved by lcnr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 22, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request May 22, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#141355 (ci: improve citool job db errors)
 - rust-lang#141359 (Fix `FnOnce` impl for `AsyncFn`/`AsyncFnMut` self-borrowing closures in new solver)
 - rust-lang#141362 (Normalize aliases to correct kind of error term)
 - rust-lang#141377 (Remove unnecessary `is_empty` checks)
 - rust-lang#141381 (try_cast_aligned: avoid bare int-to-ptr casts)
 - rust-lang#141382 (ci: convert distcheck to free runner)
 - rust-lang#141389 (ci: prepare aws access keys for migration)
 - rust-lang#141390 (Don't allow `poly_select` in new solver)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 654b2f3 into rust-lang:master May 22, 2025
6 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 22, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 22, 2025
Rollup merge of rust-lang#141359 - compiler-errors:async-fn-once, r=lcnr

Fix `FnOnce` impl for `AsyncFn`/`AsyncFnMut` self-borrowing closures in new solver

This only affects closures that are "`AsyncFn`/`AsyncFnMut`" in their calling capability that are being called with the `FnOnce` trait.

fixes rust-lang/trait-system-refactor-initiative#217

r? lcnr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

self-borrowing AsyncFnMut closures do not implement FnOnce
4 participants