diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-05-22 16:04:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-22 16:04:12 +0200 |
| commit | 654b2f39f19fac2aaa9a46a89a94048128067300 (patch) | |
| tree | c2b15aec5811a9f7a47c89dabe299f656efc6914 /compiler/rustc_next_trait_solver/src | |
| parent | 8757915a70e3e8598ef8b91ff61a2aab37f25147 (diff) | |
| parent | e0f80558716372902b2eda1e43ab2e169bfb3669 (diff) | |
| download | rust-654b2f39f19fac2aaa9a46a89a94048128067300.tar.gz rust-654b2f39f19fac2aaa9a46a89a94048128067300.zip | |
Rollup merge of #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 https://github.com/rust-lang/trait-system-refactor-initiative/issues/217 r? lcnr
Diffstat (limited to 'compiler/rustc_next_trait_solver/src')
| -rw-r--r-- | compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs b/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs index 2a2b462a36c..26ad72bea80 100644 --- a/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs +++ b/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs @@ -327,7 +327,7 @@ pub(in crate::solve) fn extract_tupled_inputs_and_output_from_callable<I: Intern // always be called once. It additionally implements `Fn`/`FnMut` // only if it has no upvars referencing the closure-env lifetime, // and if the closure kind permits it. - if closure_kind != ty::ClosureKind::FnOnce && args.has_self_borrows() { + if goal_kind != ty::ClosureKind::FnOnce && args.has_self_borrows() { return Err(NoSolution); } |
