about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-01-24 23:38:33 +0000
committerMichael Goulet <michael@errs.io>2024-02-06 02:22:58 +0000
commit427896dd7e39f1aaf3e3cbc15e5ddf77d45a6aec (patch)
tree6590ff48b2d3114622b983912308b2b4516e5531 /compiler/rustc_trait_selection/src
parentfc4fff40385252212b9921928927568f233ba02f (diff)
downloadrust-427896dd7e39f1aaf3e3cbc15e5ddf77d45a6aec.tar.gz
rust-427896dd7e39f1aaf3e3cbc15e5ddf77d45a6aec.zip
Construct body for by-move coroutine closure output
Diffstat (limited to 'compiler/rustc_trait_selection/src')
-rw-r--r--compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs1
-rw-r--r--compiler/rustc_trait_selection/src/traits/project.rs2
2 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs b/compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs
index c35134c78eb..0699026117d 100644
--- a/compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs
+++ b/compiler/rustc_trait_selection/src/solve/assembly/structural_traits.rs
@@ -366,6 +366,7 @@ pub(in crate::solve) fn extract_tupled_inputs_and_output_from_async_callable<'tc
                         let coroutine_ty = sig.to_coroutine(
                             tcx,
                             args.parent_args(),
+                            Ty::from_closure_kind(tcx, goal_kind),
                             tcx.coroutine_for_closure(def_id),
                             tupled_upvars_ty,
                         );
diff --git a/compiler/rustc_trait_selection/src/traits/project.rs b/compiler/rustc_trait_selection/src/traits/project.rs
index 648f14beaa7..db1e89ae72f 100644
--- a/compiler/rustc_trait_selection/src/traits/project.rs
+++ b/compiler/rustc_trait_selection/src/traits/project.rs
@@ -2505,6 +2505,7 @@ fn confirm_async_closure_candidate<'cx, 'tcx>(
                 let coroutine_ty = sig.to_coroutine(
                     tcx,
                     args.parent_args(),
+                    Ty::from_closure_kind(tcx, goal_kind),
                     tcx.coroutine_for_closure(def_id),
                     tupled_upvars_ty,
                 );
@@ -2533,6 +2534,7 @@ fn confirm_async_closure_candidate<'cx, 'tcx>(
                 let coroutine_ty = sig.to_coroutine(
                     tcx,
                     args.parent_args(),
+                    Ty::from_closure_kind(tcx, goal_kind),
                     tcx.coroutine_for_closure(def_id),
                     tupled_upvars_ty,
                 );