Skip to main content Module specialization_graph Copy item path Source use rustc_errors::ErrorGuaranteed ; ๐ use rustc_hir::def_id::DefId ; ๐ use rustc_macros::extension ; ๐ use rustc_middle::ty::fast_reject ; ๐ use rustc_middle::ty::fast_reject::SimplifiedType ; ๐ use rustc_middle::ty::fast_reject::TreatParams ; ๐ use rustc_middle::ty ; ๐ use rustc_middle::ty::TyCtxt ; ๐ use rustc_middle::ty::TypeVisitableExt ; ๐ use rustc_span::bug ; ๐ use tracing::debug ; ๐ use tracing::instrument ; ๐ use tracing::instrument ; ๐ use super::OverlapError ; ๐ use crate::traits ; ๐ Ancestors Children Children of a given impl, grouped into blanket/non-blanket varieties as is
done in TraitDef. FutureCompatOverlapError Graph 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. LeafDef Information about the most specialized definition of an associated item. FutureCompatOverlapErrorKind Inserted ๐ The result of attempting to insert an impl into a group of children. Node 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. OverlapMode What kind of overlap check are we doing โ this exists just for testing and feature-gating
purposes. PotentialSiblings ๐ ChildrenExt ๐ GraphExt ancestors 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 ๐