fn rematch_impl<'tcx>(
    infcx: &InferCtxt<'tcx>,
    goal: Goal<'tcx, TraitPredicate<'tcx>>,
    impl_def_id: DefId,
    nested: Vec<PredicateObligation<'tcx>>
) -> SelectionResult<'tcx, Selection<'tcx>>