@@ -60,12 +60,12 @@ pub(super) trait GoalKind<'tcx>:
6060 ecx : & mut EvalCtxt < ' _ , ' tcx > ,
6161 goal : Goal < ' tcx , Self > ,
6262 assumption : ty:: Clause < ' tcx > ,
63- requirements : impl IntoIterator < Item = Goal < ' tcx , ty:: Predicate < ' tcx > > > ,
63+ requirements : impl IntoIterator < Item = ( GoalSource , Goal < ' tcx , ty:: Predicate < ' tcx > > ) > ,
6464 ) -> QueryResult < ' tcx > {
6565 Self :: probe_and_match_goal_against_assumption ( ecx, goal, assumption, |ecx| {
66- // FIXME(-Znext-solver=coinductive): check whether this should be
67- // `GoalSource::ImplWhereBound` for any caller.
68- ecx . add_goals ( GoalSource :: Misc , requirements ) ;
66+ for ( source , goal ) in requirements {
67+ ecx . add_goal ( source , goal ) ;
68+ }
6969 ecx. evaluate_added_goals_and_make_canonical_response ( Certainty :: Yes )
7070 } )
7171 }
@@ -83,9 +83,8 @@ pub(super) trait GoalKind<'tcx>:
8383 let ty:: Dynamic ( bounds, _, _) = * goal. predicate . self_ty ( ) . kind ( ) else {
8484 bug ! ( "expected object type in `consider_object_bound_candidate`" ) ;
8585 } ;
86- // FIXME(-Znext-solver=coinductive): Should this be `GoalSource::ImplWhereBound`?
8786 ecx. add_goals (
88- GoalSource :: Misc ,
87+ GoalSource :: ImplWhereBound ,
8988 structural_traits:: predicates_for_object_candidate (
9089 ecx,
9190 goal. param_env ,
0 commit comments