Struct rustc_middle::traits::specialization_graph::LeafDef [−][src]
pub struct LeafDef {
pub item: AssocItem,
pub defining_node: Node,
pub finalizing_node: Option<Node>,
}Expand description
Information about the most specialized definition of an associated item.
Fields
item: AssocItemExpand description
The associated item described by this LeafDef.
defining_node: NodeExpand description
The node in the specialization graph containing the definition of item.
finalizing_node: Option<Node>Expand description
The “top-most” (ie. least specialized) specialization graph node that finalized the
definition of item.
Example:
trait Tr { fn assoc(&self); } impl<T> Tr for T { default fn assoc(&self) {} } impl Tr for u8 {}
If we start the leaf definition search at impl Tr for u8, that impl will be the
finalizing_node, while defining_node will be the generic impl.
If the leaf definition search is started at the generic impl, finalizing_node will be
None, since the most specialized impl we found still allows overriding the method
(doesn’t finalize it).
Implementations
impl LeafDef[src]
impl LeafDef[src]Auto Trait Implementations
impl RefUnwindSafe for LeafDef
impl !Send for LeafDef
impl !Sync for LeafDef
impl Unpin for LeafDef
impl UnwindSafe for LeafDef
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,