Struct rustc::ty::maps::Maps
[−]
[src]
pub struct Maps<'tcx> {
pub ty: RefCell<DepTrackingMap<ty<'tcx>>>,
pub generics: RefCell<DepTrackingMap<generics<'tcx>>>,
pub predicates: RefCell<DepTrackingMap<predicates<'tcx>>>,
pub super_predicates: RefCell<DepTrackingMap<super_predicates<'tcx>>>,
pub type_param_predicates: RefCell<DepTrackingMap<type_param_predicates<'tcx>>>,
pub trait_def: RefCell<DepTrackingMap<trait_def<'tcx>>>,
pub adt_def: RefCell<DepTrackingMap<adt_def<'tcx>>>,
pub adt_destructor: RefCell<DepTrackingMap<adt_destructor<'tcx>>>,
pub adt_sized_constraint: RefCell<DepTrackingMap<adt_sized_constraint<'tcx>>>,
pub variances: RefCell<DepTrackingMap<variances<'tcx>>>,
pub associated_item_def_ids: RefCell<DepTrackingMap<associated_item_def_ids<'tcx>>>,
pub associated_item: RefCell<DepTrackingMap<associated_item<'tcx>>>,
pub impl_trait_ref: RefCell<DepTrackingMap<impl_trait_ref<'tcx>>>,
pub inherent_impls: RefCell<DepTrackingMap<inherent_impls<'tcx>>>,
pub mir: RefCell<DepTrackingMap<mir<'tcx>>>,
pub mir_const_qualif: RefCell<DepTrackingMap<mir_const_qualif<'tcx>>>,
pub closure_kind: RefCell<DepTrackingMap<closure_kind<'tcx>>>,
pub closure_type: RefCell<DepTrackingMap<closure_type<'tcx>>>,
pub custom_coerce_unsized_kind: RefCell<DepTrackingMap<custom_coerce_unsized_kind<'tcx>>>,
pub typeck_tables: RefCell<DepTrackingMap<typeck_tables<'tcx>>>,
pub coherent_trait: RefCell<DepTrackingMap<coherent_trait<'tcx>>>,
pub coherent_inherent_impls: RefCell<DepTrackingMap<coherent_inherent_impls<'tcx>>>,
pub monomorphic_const_eval: RefCell<DepTrackingMap<monomorphic_const_eval<'tcx>>>,
// some fields omitted
}rustc_private)Fields
ty: RefCell<DepTrackingMap<ty<'tcx>>>
rustc_private)Records the type of every item.
generics: RefCell<DepTrackingMap<generics<'tcx>>>
rustc_private)Maps from the def-id of an item (trait/struct/enum/fn) to its associated generics and predicates.
predicates: RefCell<DepTrackingMap<predicates<'tcx>>>
rustc_private)super_predicates: RefCell<DepTrackingMap<super_predicates<'tcx>>>
rustc_private)Maps from the def-id of a trait to the list of super-predicates. This is a subset of the full list of predicates. We store these in a separate map because we must evaluate them even during type conversion, often before the full predicates are available (note that supertraits have additional acyclicity requirements).
type_param_predicates: RefCell<DepTrackingMap<type_param_predicates<'tcx>>>
rustc_private)To avoid cycles within the predicates of a single item we compute
per-type-parameter predicates for resolving T::AssocTy.
trait_def: RefCell<DepTrackingMap<trait_def<'tcx>>>
rustc_private)adt_def: RefCell<DepTrackingMap<adt_def<'tcx>>>
rustc_private)adt_destructor: RefCell<DepTrackingMap<adt_destructor<'tcx>>>
rustc_private)adt_sized_constraint: RefCell<DepTrackingMap<adt_sized_constraint<'tcx>>>
rustc_private)variances: RefCell<DepTrackingMap<variances<'tcx>>>
rustc_private)Maps from def-id of a type or region parameter to its (inferred) variance.
associated_item_def_ids: RefCell<DepTrackingMap<associated_item_def_ids<'tcx>>>
rustc_private)Maps from an impl/trait def-id to a list of the def-ids of its items
associated_item: RefCell<DepTrackingMap<associated_item<'tcx>>>
rustc_private)Maps from a trait item to the trait item "descriptor"
impl_trait_ref: RefCell<DepTrackingMap<impl_trait_ref<'tcx>>>
rustc_private)inherent_impls: RefCell<DepTrackingMap<inherent_impls<'tcx>>>
rustc_private)Maps a DefId of a type to a list of its inherent impls. Contains implementations of methods that are inherent to a type. Methods in these implementations don't need to be exported.
mir: RefCell<DepTrackingMap<mir<'tcx>>>
rustc_private)Maps from the def-id of a function/method or const/static to its MIR. Mutation is done at an item granularity to allow MIR optimization passes to function and still access cross-crate MIR (e.g. inlining or const eval).
Note that cross-crate MIR appears to be always borrowed
(in the RefCell sense) to prevent accidental mutation.
mir_const_qualif: RefCell<DepTrackingMap<mir_const_qualif<'tcx>>>
rustc_private)Maps DefId's that have an associated Mir to the result of the MIR qualify_consts pass. The actual meaning of the value isn't known except to the pass itself.
closure_kind: RefCell<DepTrackingMap<closure_kind<'tcx>>>
rustc_private)Records the type of each closure. The def ID is the ID of the expression defining the closure.
closure_type: RefCell<DepTrackingMap<closure_type<'tcx>>>
rustc_private)Records the type of each closure. The def ID is the ID of the expression defining the closure.
custom_coerce_unsized_kind: RefCell<DepTrackingMap<custom_coerce_unsized_kind<'tcx>>>
rustc_private)Caches CoerceUnsized kinds for impls on custom types.
typeck_tables: RefCell<DepTrackingMap<typeck_tables<'tcx>>>
rustc_private)coherent_trait: RefCell<DepTrackingMap<coherent_trait<'tcx>>>
rustc_private)coherent_inherent_impls: RefCell<DepTrackingMap<coherent_inherent_impls<'tcx>>>
rustc_private)monomorphic_const_eval: RefCell<DepTrackingMap<monomorphic_const_eval<'tcx>>>
rustc_private)Results of evaluating monomorphic constants embedded in other items, such as enum variant explicit discriminants.