Skip to main content

PredicateEmittingRelation

Trait PredicateEmittingRelation 

Source
pub trait PredicateEmittingRelation<Infcx, I = I>: TypeRelation<I>
where Infcx: InferCtxtLike<Interner = I>, I: Interner,
{ // Required methods fn span(&self) -> I::Span; fn param_env(&self) -> I::ParamEnv; fn register_goals( &mut self, obligations: impl IntoIterator<Item = Goal<I, I::Predicate>>, ); fn register_predicates( &mut self, obligations: impl IntoIterator<Item: Upcast<I, I::Predicate>>, ); }

Required Methods§

Source

fn span(&self) -> I::Span

Source

fn param_env(&self) -> I::ParamEnv

Source

fn register_goals( &mut self, obligations: impl IntoIterator<Item = Goal<I, I::Predicate>>, )

Register obligations that must hold in order for this relation to hold

Source

fn register_predicates( &mut self, obligations: impl IntoIterator<Item: Upcast<I, I::Predicate>>, )

Register predicates that must hold in order for this relation to hold. This uses the default param_env of the obligation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Infcx, I> PredicateEmittingRelation<Infcx> for SolverRelating<'_, Infcx, I>
where Infcx: InferCtxtLike<Interner = I>, I: Interner,