Struct rustc_data_structures::obligation_forest::ObligationForest
[−]
[src]
pub struct ObligationForest<O: ForestObligation> { // some fields omitted }
Unstable (
rustc_private
)Methods
impl<O: ForestObligation> ObligationForest<O>
[src]
fn new() -> ObligationForest<O>
fn len(&self) -> usize
[−]
Unstable (
rustc_private
)Return the total number of nodes in the forest that have not yet been fully resolved.
fn start_snapshot(&mut self) -> Snapshot
fn commit_snapshot(&mut self, snapshot: Snapshot)
fn rollback_snapshot(&mut self, snapshot: Snapshot)
fn in_snapshot(&self) -> bool
fn register_obligation(&mut self, obligation: O)
[−]
Unstable (
rustc_private
)Registers an obligation
This CAN be done in a snapshot
fn to_errors<E: Clone>(&mut self, error: E) -> Vec<Error<O, E>>
[−]
Unstable (
rustc_private
)Convert all remaining obligations to the given error.
This cannot be done during a snapshot.
fn pending_obligations(&self) -> Vec<O> where O: Clone
[−]
Unstable (
rustc_private
)Returns the set of obligations that are in a pending state.
fn process_obligations<P>(&mut self, processor: &mut P) -> Outcome<O, P::Error> where P: ObligationProcessor<Obligation=O>
[−]
Unstable (
rustc_private
)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).