Function rustc_trait_selection::traits::fully_normalize
source · pub fn fully_normalize<'tcx, T>(
infcx: &InferCtxt<'tcx>,
cause: ObligationCause<'tcx>,
param_env: ParamEnv<'tcx>,
value: T
) -> Result<T, Vec<FulfillmentError<'tcx>>>where
T: TypeFoldable<TyCtxt<'tcx>>,
Expand description
Normalize a type and process all resulting obligations, returning any errors.
FIXME(-Ztrait-solver=next): This should be replaced by At::deeply_normalize
which has the same behavior with the new solver. Because using a separate
fulfillment context worsens caching in the old solver, At::deeply_normalize
is still lazy with the old solver as it otherwise negatively impacts perf.