Struct rustc_middle::ty::ResolverAstLowering
source · [−]pub struct ResolverAstLowering {
pub legacy_const_generic_args: FxHashMap<DefId, Option<Vec<usize>>>,
pub partial_res_map: NodeMap<PartialRes>,
pub import_res_map: NodeMap<PerNS<Option<Res<NodeId>>>>,
pub label_res_map: NodeMap<NodeId>,
pub lifetimes_res_map: NodeMap<LifetimeRes>,
pub generics_def_id_map: Vec<FxHashMap<LocalDefId, LocalDefId>>,
pub extra_lifetime_params_map: NodeMap<Vec<(Ident, NodeId, LifetimeRes)>>,
pub next_node_id: NodeId,
pub node_id_to_def_id: FxHashMap<NodeId, LocalDefId>,
pub def_id_to_node_id: IndexVec<LocalDefId, NodeId>,
pub trait_map: NodeMap<Vec<TraitCandidate>>,
pub builtin_macro_kinds: FxHashMap<LocalDefId, MacroKind>,
}Expand description
Resolutions that should only be used for lowering. This struct is meant to be consumed by lowering.
Fields
legacy_const_generic_args: FxHashMap<DefId, Option<Vec<usize>>>partial_res_map: NodeMap<PartialRes>Resolutions for nodes that have a single resolution.
import_res_map: NodeMap<PerNS<Option<Res<NodeId>>>>Resolutions for import nodes, which have multiple resolutions in different namespaces.
label_res_map: NodeMap<NodeId>Resolutions for labels (node IDs of their corresponding blocks or loops).
lifetimes_res_map: NodeMap<LifetimeRes>Resolutions for lifetimes.
generics_def_id_map: Vec<FxHashMap<LocalDefId, LocalDefId>>Mapping from generics def_ids to TAIT generics def_ids.
For each captured lifetime (e.g., ’a), we create a new lifetime parameter that is a generic
defined on the TAIT, so we have type Foo<’a1> = … and we establish a mapping in this
field from the original parameter ’a to the new parameter ’a1.
extra_lifetime_params_map: NodeMap<Vec<(Ident, NodeId, LifetimeRes)>>Lifetime parameters that lowering will have to introduce.
next_node_id: NodeIdnode_id_to_def_id: FxHashMap<NodeId, LocalDefId>def_id_to_node_id: IndexVec<LocalDefId, NodeId>trait_map: NodeMap<Vec<TraitCandidate>>builtin_macro_kinds: FxHashMap<LocalDefId, MacroKind>A small map keeping true kinds of built-in macros that appear to be fn-like on
the surface (macro items in libcore), but are actually attributes or derives.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ResolverAstLowering
impl !Send for ResolverAstLowering
impl !Sync for ResolverAstLowering
impl Unpin for ResolverAstLowering
impl UnwindSafe for ResolverAstLowering
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T, R> InternIteratorElement<T, R> for T
impl<T, R> InternIteratorElement<T, R> for T
type Output = R
fn intern_with<I, F>(iter: I, f: F) -> <T as InternIteratorElement<T, R>>::Output where
I: Iterator<Item = T>,
F: FnOnce(&[T]) -> R,
sourceimpl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
impl<'a, T> Captures<'a> for T where
T: ?Sized,
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 344 bytes