pub fn predicate_for_trait_def<'tcx>(
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>,
    cause: ObligationCause<'tcx>,
    trait_def_id: DefId,
    recursion_depth: usize,
    params: impl IntoIterator<Item = impl Into<GenericArg<'tcx>>>
) -> PredicateObligation<'tcx>