Module rustc::ty::context[][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?

type context book-keeping

Re-exports

use dep_graph::DepGraph;
use dep_graph::DepNode;
use dep_graph::DepConstructor;
use errors::DiagnosticBuilder;
use session::Session;
use session::config::BorrowckMode;
use session::config::OutputFilenames;
use session::config::OptLevel;
use session::config::CrateType::*;
use middle;
use hir::TraitCandidate;
use hir::HirId;
use hir::ItemLocalId;
use hir::def::Def;
use hir::def::Export;
use hir::def_id::CrateNum;
use hir::def_id::DefId;
use hir::def_id::DefIndex;
use hir::def_id::LOCAL_CRATE;
use hir::map as hir_map;
use hir::map::DefPathHash;
use lint;
use lint::Lint;
use ich::StableHashingContext;
use ich::NodeIdHashingMode;
use infer::canonical::CanonicalVarInfo;
use infer::canonical::CanonicalVarInfos;
use infer::outlives::free_region_map::FreeRegionMap;
use middle::cstore::CrateStoreDyn;
use middle::cstore::LinkMeta;
use middle::cstore::EncodedMetadata;
use middle::lang_items;
use middle::resolve_lifetime;
use middle::resolve_lifetime::ObjectLifetimeDefault;
use middle::stability;
use mir;
use mir::Mir;
use mir::interpret;
use mir::interpret::Allocation;
use ty::subst::Kind;
use ty::subst::Substs;
use ty::subst::Subst;
use ty::ReprOptions;
use traits;
use traits::Clause;
use traits::Clauses;
use traits::Goal;
use traits::Goals;
use ty;
use ty::Ty;
use ty::TypeAndMut;
use ty::TyS;
use ty::TypeVariants;
use ty::Slice;
use ty::AdtKind;
use ty::AdtDef;
use ty::ClosureSubsts;
use ty::GeneratorSubsts;
use ty::Region;
use ty::Const;
use ty::PolyFnSig;
use ty::InferTy;
use ty::ParamTy;
use ty::ProjectionTy;
use ty::ExistentialPredicate;
use ty::Predicate;
use ty::RegionKind;
use ty::TyVar;
use ty::TyVid;
use ty::IntVar;
use ty::IntVid;
use ty::FloatVar;
use ty::FloatVid;
use ty::TypeVariants::*;
use ty::GenericParamDefKind;
use ty::layout::LayoutDetails;
use ty::layout::TargetDataLayout;
use ty::query;
use ty::steal::Steal;
use ty::BindingMode;
use ty::CanonicalTy;
use util::nodemap::DefIdSet;
use util::nodemap::DefIdSet;
use util::nodemap::ItemLocalMap;
use util::nodemap::ItemLocalMap;
use util::nodemap::FxHashMap;
use util::nodemap::FxHashMap;
use util::nodemap::FxHashSet;
use util::nodemap::FxHashSet;
use rustc_data_structures::accumulate_vec::AccumulateVec;
use rustc_data_structures::stable_hasher::HashStable;
use rustc_data_structures::stable_hasher::hash_stable_hashmap;
use rustc_data_structures::stable_hasher::StableHasher;
use rustc_data_structures::stable_hasher::StableHasherResult;
use rustc_data_structures::stable_hasher::StableVec;
use arena::TypedArena;
use arena::SyncDroplessArena;
use rustc_data_structures::indexed_vec::IndexVec;
use rustc_data_structures::sync;
use rustc_data_structures::sync::Lrc;
use rustc_data_structures::sync::Lock;
use rustc_data_structures::sync::WorkerLocal;
use std::any::Any;
use std::borrow::Borrow;
use std::cmp::Ordering;
use std::collections::hash_map;
use std::collections::hash_map::Entry;
use std::hash::Hash;
use std::hash::Hasher;
use std::mem;
use std::ops::Deref;
use std::iter;
use std::sync::mpsc;
use std::sync::Arc;
use rustc_target::spec::abi;
use syntax::ast;
use syntax::ast::NodeId;
use syntax::attr;
use syntax::codemap::MultiSpan;
use syntax::feature_gate;
use syntax::symbol::Symbol;
use syntax::symbol::keywords;
use syntax::symbol::InternedString;
use syntax_pos::Span;
use hir;

Modules

tls [
Experimental
]

Structs

AllArenas [
Experimental
]
CommonTypes [
Experimental
]
CtxtInterners [
Experimental
]
GlobalArenas [
Experimental
]

Internal storage

GlobalCtxt [
Experimental
]
Interned [
Experimental
]

An entry in an interner.

LocalTableInContext [
Experimental
]
LocalTableInContextMut [
Experimental
]
TyCtxt [
Experimental
]

The central data structure of the compiler. It stores references to the various arenas and also houses the results of the various compiler queries that have been performed. See the rustc guide for more details.

TypeckTables [
Experimental
]

Traits

InternAs [
Experimental
]
InternIteratorElement [
Experimental
]
Lift [
Experimental
]

A trait implemented for all X<'a> types which can be safely and efficiently converted to X<'tcx> as long as they are part of the provided TyCtxt<'tcx>. This can be done, for example, for Ty<'tcx> or &'tcx Substs<'tcx> by looking them up in their respective interners.

Functions

keep_local [
Experimental
]
provide [
Experimental
]
validate_hir_id_for_typeck_tables [
Experimental
]

Validate that the given HirId (respectively its local_id part) can be safely used as a key in the tables of a TypeckTable. For that to be the case, the HirId must have the same owner as all the other IDs in this table (signified by local_id_root). Otherwise the HirId would be in a different frame of reference and using its local_id would result in lookup errors, or worse, in silently wrong data being stored/returned.

Type Definitions

InternedSet [
Experimental
]