Trait rustc::traits::TraitEngine [−][src]
pub trait TraitEngine<'tcx>: 'tcx { fn normalize_projection_type<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>
) -> Ty<'tcx>; fn register_bound<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
ty: Ty<'tcx>,
def_id: DefId,
cause: ObligationCause<'tcx>
); fn register_predicate_obligation<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
obligation: PredicateObligation<'tcx>
); fn select_all_or_error<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>; fn select_where_possible<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>; fn pending_obligations(&self) -> Vec<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?
Required Methods
fn normalize_projection_type<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>
) -> Ty<'tcx>
&mut self,
infcx: &InferCtxt<'_, '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<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
param_env: ParamEnv<'tcx>,
ty: Ty<'tcx>,
def_id: DefId,
cause: ObligationCause<'tcx>
)
&mut self,
infcx: &InferCtxt<'_, '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<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>,
obligation: PredicateObligation<'tcx>
)
&mut self,
infcx: &InferCtxt<'_, '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<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
&mut self,
infcx: &InferCtxt<'_, '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<'gcx>(
&mut self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Result<(), Vec<FulfillmentError<'tcx>>>
&mut self,
infcx: &InferCtxt<'_, '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<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?
Methods
impl<'tcx> TraitEngine<'tcx>
[src]
impl<'tcx> TraitEngine<'tcx>
ⓘImportant traits for Box<W>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?
Implementors
impl<'tcx> TraitEngine<'tcx> for FulfillmentContext<'tcx>