Struct rustc_trait_selection::traits::query::normalize::QueryNormalizer
source · [−]struct QueryNormalizer<'cx, 'tcx> {
infcx: &'cx InferCtxt<'cx, 'tcx>,
cause: &'cx ObligationCause<'tcx>,
param_env: ParamEnv<'tcx>,
obligations: Vec<PredicateObligation<'tcx>>,
cache: SsoHashMap<Ty<'tcx>, Ty<'tcx>>,
anon_depth: usize,
universes: Vec<Option<UniverseIndex>>,
}Fields
infcx: &'cx InferCtxt<'cx, 'tcx>cause: &'cx ObligationCause<'tcx>param_env: ParamEnv<'tcx>obligations: Vec<PredicateObligation<'tcx>>cache: SsoHashMap<Ty<'tcx>, Ty<'tcx>>anon_depth: usizeuniverses: Vec<Option<UniverseIndex>>Trait Implementations
fn try_fold_binder<T: TypeFoldable<'tcx>>(
&mut self,
t: Binder<'tcx, T>
) -> Result<Binder<'tcx, T>, Self::Error>
fn try_fold_const(
&mut self,
constant: &'tcx Const<'tcx>
) -> Result<&'tcx Const<'tcx>, Self::Error>
fn try_fold_mir_const(
&mut self,
constant: ConstantKind<'tcx>
) -> Result<ConstantKind<'tcx>, Self::Error>
type Error = NoSolution
fn fold_binder<T>(&mut self, t: Binder<T>) -> Binder<T> where
T: TypeFoldable<'tcx>,
Self: TypeFolder<'tcx, Error = !>,
fn fold_region(&mut self, r: &RegionKind) -> &RegionKind where
Self: TypeFolder<'tcx, Error = !>,
fn fold_predicate(&mut self, p: Predicate) -> Predicate where
Self: TypeFolder<'tcx, Error = !>,
fn fold_mir_const(&mut self, c: ConstantKind) -> ConstantKind where
Self: TypeFolder<'tcx, Error = !>,
Auto Trait Implementations
impl<'cx, 'tcx> !RefUnwindSafe for QueryNormalizer
impl<'cx, 'tcx> !Send for QueryNormalizer
impl<'cx, 'tcx> !Sync for QueryNormalizer
impl<'cx, 'tcx> Unpin for QueryNormalizer where
'tcx: 'cx,
impl<'cx, 'tcx> !UnwindSafe for QueryNormalizer
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 224 bytes