Struct rustc_trait_selection::traits::chalk_fulfill::FulfillmentContext [−][src]
pub struct FulfillmentContext<'tcx> {
obligations: FxIndexSet<PredicateObligation<'tcx>>,
relationships: FxHashMap<TyVid, FoundRelationships>,
}Fields
obligations: FxIndexSet<PredicateObligation<'tcx>>relationships: FxHashMap<TyVid, FoundRelationships>Implementations
Trait Implementations
fn normalize_projection_type(
&mut self,
infcx: &InferCtxt<'_, 'tcx>,
_param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
_cause: ObligationCause<'tcx>
) -> Ty<'tcx>
fn register_predicate_obligation(
&mut self,
infcx: &InferCtxt<'_, 'tcx>,
obligation: PredicateObligation<'tcx>
)
fn select_where_possible(
&mut self,
infcx: &InferCtxt<'_, 'tcx>
) -> Vec<FulfillmentError<'tcx>>
fn register_bound(
&mut self,
infcx: &InferCtxt<'_>,
param_env: ParamEnv,
ty: &TyS,
def_id: DefId,
cause: ObligationCause
)
fn register_bound(
&mut self,
infcx: &InferCtxt<'_>,
param_env: ParamEnv,
ty: &TyS,
def_id: DefId,
cause: ObligationCause
)
Requires that ty must implement the trait with def_id in
the given environment. This trait must not have any type
parameters (except for Self). Read more
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for FulfillmentContext
impl<'tcx> !Send for FulfillmentContext
impl<'tcx> !Sync for FulfillmentContext
impl<'tcx> Unpin for FulfillmentContext
impl<'tcx> !UnwindSafe for FulfillmentContext
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn register_predicate_obligations(
&mut self,
infcx: &InferCtxt<'_>,
obligations: impl IntoIterator<Item = Obligation<Predicate>>
)
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: 88 bytes
