@@ -378,6 +378,7 @@ pub fn normalize_param_env_or_error<'tcx>(
378378 )
379379}
380380
381+ /// Normalize a type and process all resulting obligations, returning any errors
381382pub fn fully_normalize < ' a , ' tcx , T > (
382383 infcx : & InferCtxt < ' a , ' tcx > ,
383384 cause : ObligationCause < ' tcx > ,
@@ -412,6 +413,8 @@ where
412413 Ok ( resolved_value)
413414}
414415
416+ /// Process an obligation (and any nested obligations that come from it) to
417+ /// completion, returning any errors
415418pub fn fully_solve_obligation < ' a , ' tcx > (
416419 infcx : & InferCtxt < ' a , ' tcx > ,
417420 obligation : PredicateObligation < ' tcx > ,
@@ -421,6 +424,8 @@ pub fn fully_solve_obligation<'a, 'tcx>(
421424 engine. select_all_or_error ( infcx)
422425}
423426
427+ /// Process a set of obligations (and any nested obligations that come from them)
428+ /// to completion
424429pub fn fully_solve_obligations < ' a , ' tcx > (
425430 infcx : & InferCtxt < ' a , ' tcx > ,
426431 obligations : impl IntoIterator < Item = PredicateObligation < ' tcx > > ,
@@ -430,6 +435,9 @@ pub fn fully_solve_obligations<'a, 'tcx>(
430435 engine. select_all_or_error ( infcx)
431436}
432437
438+ /// Process a bound (and any nested obligations that come from it) to completion.
439+ /// This is a convenience function for traits that have no generic arguments, such
440+ /// as auto traits, and builtin traits like Copy or Sized.
433441pub fn fully_solve_bound < ' a , ' tcx > (
434442 infcx : & InferCtxt < ' a , ' tcx > ,
435443 cause : ObligationCause < ' tcx > ,
0 commit comments