Skip to main content

Module specialization_graph

Module specialization_graph 

Source

Re-exportsยง

use rustc_attr_ir::find_attr; ๐Ÿ”’
use rustc_data_structures::fx::FxIndexMap; ๐Ÿ”’
use rustc_errors::ErrorGuaranteed; ๐Ÿ”’
use rustc_hir::def_id::DefId; ๐Ÿ”’
use rustc_hir::def_id::DefIdMap; ๐Ÿ”’
use rustc_macros::StableHash; ๐Ÿ”’
use rustc_macros::TyDecodable; ๐Ÿ”’
use rustc_macros::TyEncodable; ๐Ÿ”’
use crate::diagnostics::StrictCoherenceNeedsNegativeCoherence; ๐Ÿ”’
use crate::ty::fast_reject::SimplifiedType; ๐Ÿ”’
use crate::ty; ๐Ÿ”’
use crate::ty::TyCtxt; ๐Ÿ”’
use crate::ty::TypeVisitableExt; ๐Ÿ”’

Structsยง

Ancestors
Children
Children of a given impl, grouped into blanket/non-blanket varieties as is done in TraitDef.
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.

Enumsยง

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.

Functionsยง

ancestors
Walk up the specialization ancestors of a given impl, starting with that impl itself.