This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
rustc_next_trait_solver/src/solve
rustc_trait_selection/src Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -274,6 +274,22 @@ where
274274 return Err ( NoSolution ) ;
275275 }
276276
277+ // TODO:
278+ if let ty:: CoroutineWitness ( def_id, _) = goal. predicate . self_ty ( ) . kind ( ) {
279+ match * ecx. typing_mode ( ) {
280+ TypingModeKind :: Analysis { stalled_generators, defining_opaque_types : _ } => {
281+ if def_id. as_local ( ) . is_some_and ( |def_id| stalled_generators. contains ( & def_id) )
282+ {
283+ return ecx. forced_ambiguity ( MaybeCause :: Ambiguity ) ;
284+ }
285+ }
286+ TypingModeKind :: Coherence
287+ | TypingModeKind :: PostAnalysis
288+ | TypingModeKind :: Borrowck { defining_opaque_types : _ }
289+ | TypingModeKind :: PostBorrowckAnalysis { defined_opaque_types : _ } => { }
290+ }
291+ }
292+
277293 ecx. probe_and_evaluate_goal_for_constituent_tys (
278294 CandidateSource :: BuiltinImpl ( BuiltinImplSource :: Misc ) ,
279295 goal,
Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ impl<'tcx> InferCtxt<'tcx> {
3434
3535 // FIXME(#132279): This should be removed as it causes us to incorrectly
3636 // handle opaques in their defining scope.
37- if !( param_env, ty) . has_infer ( ) {
37+ if !self . next_trait_solver ( ) && ! ( param_env, ty) . has_infer ( ) {
3838 return self . tcx . type_is_copy_modulo_regions ( self . typing_env ( param_env) , ty) ;
3939 }
4040
You can’t perform that action at this time.
0 commit comments