Function deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals

Source
pub fn deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals<'tcx, T, E>(
    at: At<'_, 'tcx>,
    value: T,
    universes: Vec<Option<UniverseIndex>>,
) -> Result<(T, Vec<Goal<'tcx, Predicate<'tcx>>>), Vec<E>>
where T: TypeFoldable<TyCtxt<'tcx>>, E: FromSolverError<'tcx, NextSolverError<'tcx>>,
Expand description

Deeply normalize all aliases in value. This does not handle inference and expects its input to be already fully resolved.

Additionally takes a list of universes which represents the binders which have been entered before passing value to the function. This is currently needed for normalize_erasing_regions, which skips binders as it walks through a type.

This returns a set of stalled obligations involving coroutines if the typing mode of the underlying infcx has any stalled coroutine def ids.