pub(crate) fn iterator_trait_ref_and_outputs<'tcx>( tcx: TyCtxt<'tcx>, iterator_def_id: DefId, self_ty: Ty<'tcx>, sig: GenSig<TyCtxt<'tcx>>, ) -> (TraitRef<'tcx>, Ty<'tcx>)