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