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).