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
}
🔬 This is a nightly-only experimental API. (rustc_private)

Fields

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

Records the type of every item.

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

Maps from the def-id of an item (trait/struct/enum/fn) to its associated generics and predicates.

🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (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).

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

To avoid cycles within the predicates of a single item we compute per-type-parameter predicates for resolving T::AssocTy.

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

Maps from def-id of a type or region parameter to its (inferred) variance.

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

Maps from an impl/trait def-id to a list of the def-ids of its items

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

Maps from a trait item to the trait item "descriptor"

🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (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.

🔬 This is a nightly-only experimental API. (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.

🔬 This is a nightly-only experimental API. (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.

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

Records the type of each closure. The def ID is the ID of the expression defining the closure.

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

Records the type of each closure. The def ID is the ID of the expression defining the closure.

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

Caches CoerceUnsized kinds for impls on custom types.

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

Results of evaluating monomorphic constants embedded in other items, such as enum variant explicit discriminants.

Methods

impl<'tcx> Maps<'tcx>
[src]

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