Skip to main content

Module normalize

Module normalize 

Source

Re-exportsยง

use rustc_infer::infer::InferCtxt; ๐Ÿ”’
use rustc_infer::infer::at::At; ๐Ÿ”’
use rustc_infer::traits::solve::Goal; ๐Ÿ”’
use rustc_infer::traits::FromSolverError; ๐Ÿ”’
use rustc_infer::traits::Normalized; ๐Ÿ”’
use rustc_infer::traits::Obligation; ๐Ÿ”’
use rustc_infer::traits::PredicateObligation; ๐Ÿ”’
use rustc_infer::traits::PredicateObligations; ๐Ÿ”’
use rustc_infer::traits::TraitEngine; ๐Ÿ”’
use rustc_infer::traits::TraitErrors; ๐Ÿ”’
use rustc_middle::traits::ObligationCause; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::Binder; ๐Ÿ”’
use rustc_middle::ty::Flags; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_middle::ty::TypeFoldable; ๐Ÿ”’
use rustc_middle::ty::TypeFolder; ๐Ÿ”’
use rustc_middle::ty::TypeSuperFoldable; ๐Ÿ”’
use rustc_middle::ty::TypeVisitableExt; ๐Ÿ”’
use rustc_middle::ty::UniverseIndex; ๐Ÿ”’
use rustc_middle::ty::Unnormalized; ๐Ÿ”’
use rustc_next_trait_solver::normalize::NormalizationFolder; ๐Ÿ”’
use rustc_next_trait_solver::normalize::NormalizationWasAmbiguous; ๐Ÿ”’
use rustc_next_trait_solver::solve::SolverDelegateEvalExt; ๐Ÿ”’
use thin_vec::ThinVec; ๐Ÿ”’
use thin_vec::thin_vec; ๐Ÿ”’
use super::FulfillmentCtxt; ๐Ÿ”’
use super::NextSolverError; ๐Ÿ”’
use crate::solve::Certainty; ๐Ÿ”’
use crate::solve::SolverDelegate; ๐Ÿ”’
use crate::traits::BoundVarReplacer; ๐Ÿ”’
use crate::traits::ScrubbedTraitError; ๐Ÿ”’

Structsยง

DeeplyNormalizeForDiagnosticsFolder ๐Ÿ”’
ReplaceAliasWithInfer ๐Ÿ”’

Functionsยง

deeply_normalize
Deeply normalize all aliases in value. This does not handle inference and expects its input to be already fully resolved.
deeply_normalize_for_diagnostics ๐Ÿ”’
deeply_normalize_with_skipped_universes
Deeply normalize all aliases in value. This does not handle inference and expects its input to be already fully resolved.
deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals
Deeply normalize all aliases in value. This does not handle inference and expects its input to be already fully resolved.
normalize
Normalize a value, deferring ambiguity and errors to fulfillment.
normalize_with_universes ๐Ÿ”’
Like deeply_normalize, but we handle ambiguity and inference variables in this routine. The behavior should be same as the old solver. On error, return the failed obligation. For ambiguity, we have two cases: