[−][src]Struct rustc_trait_selection::traits::fulfill::FulfillProcessor
Fields
selcx: &'a mut SelectionContext<'b, 'tcx>register_region_obligations: boolImplementations
impl<'a, 'b, 'tcx> FulfillProcessor<'a, 'b, 'tcx>[src]
pub(in traits::fulfill) fn progress_changed_obligations(
&mut self,
pending_obligation: &mut PendingPredicateObligation<'tcx>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>[src]
&mut self,
pending_obligation: &mut PendingPredicateObligation<'tcx>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>
pub(in traits::fulfill) fn process_trait_obligation(
&mut self,
obligation: &PredicateObligation<'tcx>,
trait_obligation: TraitObligation<'tcx>,
stalled_on: &mut Vec<TyOrConstInferVar<'tcx>>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>[src]
&mut self,
obligation: &PredicateObligation<'tcx>,
trait_obligation: TraitObligation<'tcx>,
stalled_on: &mut Vec<TyOrConstInferVar<'tcx>>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>
pub(in traits::fulfill) fn process_projection_obligation(
&mut self,
project_obligation: Obligation<'tcx, PolyProjectionPredicate<'tcx>>,
stalled_on: &mut Vec<TyOrConstInferVar<'tcx>>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>[src]
&mut self,
project_obligation: Obligation<'tcx, PolyProjectionPredicate<'tcx>>,
stalled_on: &mut Vec<TyOrConstInferVar<'tcx>>
) -> ProcessResult<PendingPredicateObligation<'tcx>, FulfillmentErrorCode<'tcx>>
Trait Implementations
impl<'a, 'b, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'b, 'tcx>[src]
type Obligation = PendingPredicateObligation<'tcx>
type Error = FulfillmentErrorCode<'tcx>
pub fn process_obligation(
&mut self,
pending_obligation: &mut Self::Obligation
) -> ProcessResult<Self::Obligation, Self::Error>[src]
&mut self,
pending_obligation: &mut Self::Obligation
) -> ProcessResult<Self::Obligation, Self::Error>
Processes a predicate obligation and returns either:
Changed(v)if the predicate is true, presuming thatvare also trueUnchangedif we don't have enough info to be sureError(e)if the predicate does not hold
This is always inlined, despite its size, because it has a single callsite and it is called very frequently.
pub fn process_backedge<'c, I>(
&mut self,
cycle: I,
_marker: PhantomData<&'c PendingPredicateObligation<'tcx>>
) where
I: Clone + Iterator<Item = &'c PendingPredicateObligation<'tcx>>, [src]
&mut self,
cycle: I,
_marker: PhantomData<&'c PendingPredicateObligation<'tcx>>
) where
I: Clone + Iterator<Item = &'c PendingPredicateObligation<'tcx>>,
Auto Trait Implementations
impl<'a, 'b, 'tcx> !RefUnwindSafe for FulfillProcessor<'a, 'b, 'tcx>
impl<'a, 'b, 'tcx> !Send for FulfillProcessor<'a, 'b, 'tcx>
impl<'a, 'b, 'tcx> !Sync for FulfillProcessor<'a, 'b, 'tcx>
impl<'a, 'b, 'tcx> Unpin for FulfillProcessor<'a, 'b, 'tcx> where
'b: 'a,
'tcx: 'a,
'b: 'a,
'tcx: 'a,
impl<'a, 'b, 'tcx> !UnwindSafe for FulfillProcessor<'a, 'b, 'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.