Struct rustc_data_structures::obligation_forest::ObligationForest [−][src]
pub struct ObligationForest<O: ForestObligation> { /* fields omitted */ }
Methods
impl<O: ForestObligation> ObligationForest<O>
[src]
impl<O: ForestObligation> ObligationForest<O>
pub fn new() -> ObligationForest<O>
[src]
pub fn new() -> ObligationForest<O>
pub fn len(&self) -> usize
[src]
pub fn len(&self) -> usize
Return the total number of nodes in the forest that have not yet been fully resolved.
pub fn register_obligation(&mut self, obligation: O)
[src]
pub fn register_obligation(&mut self, obligation: O)
Registers an obligation
This CAN be done in a snapshot
pub fn to_errors<E: Clone>(&mut self, error: E) -> Vec<Error<O, E>>
[src]
pub fn to_errors<E: Clone>(&mut self, error: E) -> Vec<Error<O, E>>
Convert all remaining obligations to the given error.
This cannot be done during a snapshot.
pub fn map_pending_obligations<P, F>(&self, f: F) -> Vec<P> where
F: Fn(&O) -> P,
[src]
pub fn map_pending_obligations<P, F>(&self, f: F) -> Vec<P> where
F: Fn(&O) -> P,
Returns the set of obligations that are in a pending state.
pub fn process_obligations<P>(
&mut self,
processor: &mut P
) -> Outcome<O, P::Error> where
P: ObligationProcessor<Obligation = O>,
[src]
pub fn process_obligations<P>(
&mut self,
processor: &mut P
) -> Outcome<O, P::Error> where
P: ObligationProcessor<Obligation = O>,
Perform a pass through the obligation list. This must
be called in a loop until outcome.stalled
is false.
This CANNOT be unrolled (presently, at least).
Auto Trait Implementations
impl<O> Send for ObligationForest<O> where
O: Send,
<O as ForestObligation>::Predicate: Send,
impl<O> Send for ObligationForest<O> where
O: Send,
<O as ForestObligation>::Predicate: Send,
impl<O> !Sync for ObligationForest<O>
impl<O> !Sync for ObligationForest<O>