fn assemble_candidates_from_impls<'cx, 'tcx>(
    selcx: &mut SelectionContext<'cx, 'tcx>,
    obligation: &Obligation<'tcx, AliasTy<'tcx>>,
    candidate_set: &mut ProjectionCandidateSet<'tcx>
)