fn sig_from_bounds<'tcx>( cx: &LateContext<'tcx>, ty: Ty<'tcx>, predicates: &'tcx [Predicate<'tcx>], predicates_id: Option<DefId>) -> Option<ExprFnSig<'tcx>>