Struct rustc::traits::fulfill::FulfillProcessor [−][src]
struct FulfillProcessor<'a, 'b: 'a, 'gcx: 'tcx, 'tcx: 'b> {
selcx: &'a mut SelectionContext<'b, 'gcx, 'tcx>,
register_region_obligations: bool,
}🔬 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?
Fields
selcx: &'a mut SelectionContext<'b, 'gcx, '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?
register_region_obligations: bool
🔬 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?
Trait Implementations
impl<'a, 'b, 'gcx, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'b, 'gcx, 'tcx>[src]
impl<'a, 'b, 'gcx, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'b, 'gcx, 'tcx>type Obligation = 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?
type Error = FulfillmentErrorCode<'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 process_obligation(
&mut self,
pending_obligation: &mut Self::Obligation
) -> ProcessResult<Self::Obligation, Self::Error>[src]
fn process_obligation(
&mut self,
pending_obligation: &mut Self::Obligation
) -> ProcessResult<Self::Obligation, Self::Error>🔬 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?
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.
fn process_backedge<'c, I>(
&mut self,
cycle: I,
_marker: PhantomData<&'c PendingPredicateObligation<'tcx>>
) where
I: Clone + Iterator<Item = &'c PendingPredicateObligation<'tcx>>, [src]
fn process_backedge<'c, I>(
&mut self,
cycle: I,
_marker: PhantomData<&'c PendingPredicateObligation<'tcx>>
) where
I: Clone + Iterator<Item = &'c 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?
As we do the cycle check, we invoke this callback when we encounter an actual cycle. cycle is an iterator that starts at the start of the cycle in the stack and walks toward the top. Read more
Auto Trait Implementations
impl<'a, 'b, 'gcx, 'tcx> !Send for FulfillProcessor<'a, 'b, 'gcx, 'tcx>
impl<'a, 'b, 'gcx, 'tcx> !Send for FulfillProcessor<'a, 'b, 'gcx, 'tcx>impl<'a, 'b, 'gcx, 'tcx> !Sync for FulfillProcessor<'a, 'b, 'gcx, 'tcx>
impl<'a, 'b, 'gcx, 'tcx> !Sync for FulfillProcessor<'a, 'b, 'gcx, 'tcx>