Struct rustc_type_ir::search_graph::CycleHeads
source · struct CycleHeads {
heads: BTreeSet<StackDepth>,
}
Expand description
All cycle heads a given goal depends on, ordered by their stack depth.
We therefore pop the cycle heads from highest to lowest.
Fields§
§heads: BTreeSet<StackDepth>
Implementations§
source§impl CycleHeads
impl CycleHeads
fn is_empty(&self) -> bool
fn highest_cycle_head(&self) -> StackDepth
fn opt_highest_cycle_head(&self) -> Option<StackDepth>
fn opt_lowest_cycle_head(&self) -> Option<StackDepth>
fn remove_highest_cycle_head(&mut self)
fn insert(&mut self, head: StackDepth)
fn merge(&mut self, heads: &CycleHeads)
sourcefn extend_from_child(&mut self, this: StackDepth, child: &CycleHeads)
fn extend_from_child(&mut self, this: StackDepth, child: &CycleHeads)
Update the cycle heads of a goal at depth this
given the cycle heads
of a nested goal. This merges the heads after filtering the parent goal
itself.
Trait Implementations§
source§impl Clone for CycleHeads
impl Clone for CycleHeads
source§fn clone(&self) -> CycleHeads
fn clone(&self) -> CycleHeads
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CycleHeads
impl Debug for CycleHeads
source§impl Default for CycleHeads
impl Default for CycleHeads
source§fn default() -> CycleHeads
fn default() -> CycleHeads
Returns the “default value” for a type. Read more
source§impl PartialEq for CycleHeads
impl PartialEq for CycleHeads
impl Eq for CycleHeads
impl StructuralPartialEq for CycleHeads
Auto Trait Implementations§
impl Freeze for CycleHeads
impl RefUnwindSafe for CycleHeads
impl Send for CycleHeads
impl Sync for CycleHeads
impl Unpin for CycleHeads
impl UnwindSafe for CycleHeads
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes