Trait rustc::traits::TraitEngine [−][src]
pub trait TraitEngine<'tcx>: 'tcx { fn normalize_projection_type<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>
) -> Ty<'tcx>; fn register_bound<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
ty: Ty<'tcx>,
def_id: DefId,
cause: ObligationCause<'tcx>
); fn register_predicate_obligation<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
obligation: PredicateObligation<'tcx>
); fn select_all_or_error<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>; fn select_where_possible<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>; fn pending_obligations(&self) -> Vec<PendingPredicateObligation<'tcx>>; }
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Required Methods
fn normalize_projection_type<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>
) -> Ty<'tcx>
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>
) -> Ty<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn register_bound<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
ty: Ty<'tcx>,
def_id: DefId,
cause: ObligationCause<'tcx>
)
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
ty: Ty<'tcx>,
def_id: DefId,
cause: ObligationCause<'tcx>
)
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn register_predicate_obligation<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
obligation: PredicateObligation<'tcx>
)
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
obligation: PredicateObligation<'tcx>
)
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn select_all_or_error<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn select_where_possible<'a, 'gcx>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn pending_obligations(&self) -> Vec<PendingPredicateObligation<'tcx>>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Methods
impl<'a, 'gcx, 'tcx> TraitEngine<'tcx>
[src]
impl<'a, 'gcx, 'tcx> TraitEngine<'tcx>
ⓘImportant traits for Box<R>pub fn new(_tcx: TyCtxt<'_, '_, 'tcx>) -> Box<Self>
[src]
pub fn new(_tcx: TyCtxt<'_, '_, 'tcx>) -> Box<Self>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
pub fn register_predicate_obligations<I>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
obligations: I
) where
I: IntoIterator<Item = PredicateObligation<'tcx>>,
[src]
pub fn register_predicate_obligations<I>(
&mut self,
infcx: &InferCtxt<'a, 'gcx, 'tcx>,
obligations: I
) where
I: IntoIterator<Item = PredicateObligation<'tcx>>,
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Implementors
impl<'tcx> TraitEngine<'tcx> for FulfillmentContext<'tcx>