Struct rustc_ap_rustc_data_structures::obligation_forest::ObligationForest [−][src]
pub struct ObligationForest<O: ForestObligation> { /* fields omitted */ }
Implementations
Creates a graphviz representation of the obligation forest. Given a directory this will
create files with name of the format <counter>_<description>.gv
. The counter is
global and is maintained internally.
Calling this will do nothing unless the environment variable
DUMP_OBLIGATION_FOREST_GRAPHVIZ
is defined.
A few post-processing that you might want to do make the forest easier to visualize:
sed 's,std::[a-z]*::,,g'
— Deletes thestd::<package>::
prefix of paths.sed 's,"Binder(TraitPredicate(<\(.*\)>)) (\([^)]*\))","\1 (\2)",'
— TransformsBinder(TraitPredicate(<predicate>))
into just<predicate>
.
Returns the total number of nodes in the forest that have not yet been fully resolved.
Registers an obligation.
Converts all remaining obligations to the given error.
Returns the set of obligations that are in a pending state.
pub fn process_obligations<P, OUT>(&mut self, processor: &mut P) -> OUT where
P: ObligationProcessor<Obligation = O>,
OUT: OutcomeTrait<Obligation = O, Error = Error<O, P::Error>>,
pub fn process_obligations<P, OUT>(&mut self, processor: &mut P) -> OUT where
P: ObligationProcessor<Obligation = O>,
OUT: OutcomeTrait<Obligation = O, Error = Error<O, P::Error>>,
Performs 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).
Trait Implementations
Maps n
to a unique identifier with respect to self
. The
implementor is responsible for ensuring that the returned name
is a valid DOT identifier. Read more
Maps n
to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is just the output from node_id
. Read more
Maps e
to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is in fact the empty string. Read more
Maps n
to one of the graphviz shape
names. If None
is returned, no shape
attribute is specified. Read more
Maps n
to a style that will be used in the rendered output.
Maps e
to a style that will be used in the rendered output.
Auto Trait Implementations
impl<O> !RefUnwindSafe for ObligationForest<O>
impl<O> Send for ObligationForest<O> where
O: Send,
<O as ForestObligation>::CacheKey: Send,
impl<O> !Sync for ObligationForest<O>
impl<O> Unpin for ObligationForest<O> where
O: Unpin,
<O as ForestObligation>::CacheKey: Unpin,
impl<O> UnwindSafe for ObligationForest<O> where
O: UnwindSafe,
<O as ForestObligation>::CacheKey: UnwindSafe,