[−][src]Function rustc_trait_selection::traits::project::poly_project_and_unify_type

pub(in traits) fn poly_project_and_unify_type<'cx, 'tcx>(
    selcx: &mut SelectionContext<'cx, 'tcx>,
    obligation: &Obligation<'tcx, PolyProjectionPredicate<'tcx>>
) -> Result<Result<Option<Vec<PredicateObligation<'tcx>>>, InProgress>, MismatchedProjectionTypes<'tcx>>

Evaluates constraints of the form:

for<...> <T as Trait>::U == V

If successful, this may result in additional obligations. Also returns the projection cache key used to track these additional obligations.

Returns