@@ -60,12 +60,12 @@ pub(super) trait GoalKind<'tcx>:
60
60
ecx : & mut EvalCtxt < ' _ , ' tcx > ,
61
61
goal : Goal < ' tcx , Self > ,
62
62
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 > > ) > ,
64
64
) -> QueryResult < ' tcx > {
65
65
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
+ }
69
69
ecx. evaluate_added_goals_and_make_canonical_response ( Certainty :: Yes )
70
70
} )
71
71
}
@@ -83,9 +83,8 @@ pub(super) trait GoalKind<'tcx>:
83
83
let ty:: Dynamic ( bounds, _, _) = * goal. predicate . self_ty ( ) . kind ( ) else {
84
84
bug ! ( "expected object type in `consider_object_bound_candidate`" ) ;
85
85
} ;
86
- // FIXME(-Znext-solver=coinductive): Should this be `GoalSource::ImplWhereBound`?
87
86
ecx. add_goals (
88
- GoalSource :: Misc ,
87
+ GoalSource :: ImplWhereBound ,
89
88
structural_traits:: predicates_for_object_candidate (
90
89
ecx,
91
90
goal. param_env ,
0 commit comments