Candidate selection. See the rustc dev guide for more information on how this works.
- The result of trait evaluation. The order is important here as the evaluation of a list is the maximum of the evaluations.
- Indicates that trait evaluation caused overflow and in which pass.
- The selection process begins by considering all impls, where clauses, and so forth that might resolve an obligation. Sometimes we’ll be able to say definitively that (e.g.) an impl does not apply to the obligation: perhaps it is defined for
usizebut the obligation is for
i32. In that case, we drop the impl out of the list. But the other cases are considered candidates.