Module rustc::traits::specialize::specialization_graph[][src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Re-exports

use super::OverlapError;
use hir::def_id::DefId;
use ich;
use ich::StableHashingContext;
use rustc_data_structures::stable_hasher::HashStable;
use rustc_data_structures::stable_hasher::StableHasher;
use rustc_data_structures::stable_hasher::StableHasherResult;
use traits;
use ty;
use ty::TyCtxt;
use ty::TypeFoldable;
use ty::fast_reject;
use ty::fast_reject::SimplifiedType;
use rustc_data_structures::sync::Lrc;
use syntax::ast::Name;
use util::captures::Captures;
use util::nodemap::DefIdMap;
use util::nodemap::DefIdMap;
use util::nodemap::FxHashMap;
use util::nodemap::FxHashMap;

Structs

Ancestors [
Experimental
]
Children [
Experimental
]

Children of a given impl, grouped into blanket/non-blanket varieties as is done in TraitDef.

Graph [
Experimental
]

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.

NodeItem [
Experimental
]

Enums

Inserted [
Experimental
]

The result of attempting to insert an impl into a group of children.

Node [
Experimental
]

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.

Functions

ancestors [
Experimental
]

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