rustc_trait_selection::traits::specialize

Module specialization_graph

Source

Structsยง

  • Children of a given impl, grouped into blanket/non-blanket varieties as is done in TraitDef.
  • A per-trait graph of impls in specialization order. At the moment, this graph forms a tree rooted with the trait itself, with all other nodes representing impls, and parent-child relationships representing specializations.
  • Information about the most specialized definition of an associated item.

Enumsยง

  • Inserted ๐Ÿ”’
    The result of attempting to insert an impl into a group of children.
  • A node in the specialization graph is either an impl or a trait definition; either can serve as a source of item definitions. There is always exactly one trait definition node: the root.
  • What kind of overlap check are we doing โ€“ this exists just for testing and feature-gating purposes.
  • PotentialSiblings ๐Ÿ”’

Traitsยง

Functionsยง

  • Walk up the specialization ancestors of a given impl, starting with that impl itself.
  • assoc_def ๐Ÿ”’
    Locate the definition of an associated type in the specialization hierarchy, starting from the given impl.
  • filtered_children ๐Ÿ”’
  • iter_children ๐Ÿ”’