Trait rustc_infer::traits::engine::TraitEngine[][src]

pub trait TraitEngine<'tcx>: 'tcx {
    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_all_or_error(
        &mut self,
        infcx: &InferCtxt<'_, 'tcx>
    ) -> Result<(), Vec<FulfillmentError<'tcx>>>;
fn select_where_possible(
        &mut self,
        infcx: &InferCtxt<'_, 'tcx>
    ) -> Result<(), Vec<FulfillmentError<'tcx>>>;
fn pending_obligations(&self) -> Vec<PredicateObligation<'tcx>>;
fn relationships(&mut self) -> &mut FxHashMap<TyVid, FoundRelationships>; fn register_bound(
        &mut self,
        infcx: &InferCtxt<'_, 'tcx>,
        param_env: ParamEnv<'tcx>,
        ty: Ty<'tcx>,
        def_id: DefId,
        cause: ObligationCause<'tcx>
    ) { ... }
fn select_all_with_constness_or_error(
        &mut self,
        infcx: &InferCtxt<'_, 'tcx>,
        _constness: Constness
    ) -> Result<(), Vec<FulfillmentError<'tcx>>> { ... }
fn select_with_constness_where_possible(
        &mut self,
        infcx: &InferCtxt<'_, 'tcx>,
        _constness: Constness
    ) -> Result<(), Vec<FulfillmentError<'tcx>>> { ... } }

Required methods

Provided methods

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).

Implementors