rustc_trait_selection::traits::project

Function assemble_candidates_from_trait_def

source
fn assemble_candidates_from_trait_def<'cx, 'tcx>(
    selcx: &mut SelectionContext<'cx, 'tcx>,
    obligation: &ProjectionTermObligation<'tcx>,
    candidate_set: &mut ProjectionCandidateSet<'tcx>,
)
Expand description

In the case of a nested projection like <<A as Foo>::FooT as Bar>::BarT, we may find that the definition of Foo has some clues:

trait Foo {
    type FooT : Bar<BarT=i32>
}

Here, for example, we could conclude that the result is i32.