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 thatv
are also trueUnchanged
if 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>