pub fn predicate_obligations<'tcx>(
    infcx: &InferCtxt<'tcx>,
    param_env: ParamEnv<'tcx>,
    body_id: HirId,
    predicate: Predicate<'tcx>,
    span: Span
) -> Vec<PredicateObligation<'tcx>>