fn assemble_candidates_from_clauses<'cx, 'tcx>(
selcx: &mut SelectionContext<'cx, 'tcx>,
obligation: &ProjectionTermObligation<'tcx>,
candidate_set: &mut ProjectionCandidateSet<'tcx>,
ctor: fn(PolyProjectionPredicate<'tcx>) -> ProjectionCandidate<'tcx>,
env_clauses: impl Iterator<Item = Clause<'tcx>>,
potentially_unnormalized_candidates: bool,
)