rustc_traits::codegen

Function codegen_select_candidate

Source
pub(crate) fn codegen_select_candidate<'tcx>(
    tcx: TyCtxt<'tcx>,
    key: PseudoCanonicalInput<'tcx, TraitRef<'tcx>>,
) -> Result<&'tcx ImplSource<'tcx, ()>, CodegenObligationError>
Expand description

Attempts to resolve an obligation to an ImplSource. The result is a shallow ImplSource resolution, meaning that we do not (necessarily) resolve all nested obligations on the impl. Note that type check should guarantee to us that all nested obligations could be resolved if we wanted to.

This also expects that trait_ref is fully normalized.