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.