struct ExpressionOnlySourceMap {
expr_map: FxHashMap<ExprSource, ExprOrPatIdPacked>,
expr_map_back: ArenaMap<ExprId, ExprOrPatSource>,
pat_map: FxHashMap<PatSource, ExprOrPatIdPacked>,
pat_map_back: ArenaMap<PatId, ExprOrPatSource>,
label_map: FxHashMap<LabelSource, LabelId>,
label_map_back: ArenaMap<LabelId, LabelSource>,
binding_definitions: ArenaMap<BindingId, SmallVec<[PatId; 4]>>,
field_map_back: FxHashMap<ExprId, FieldSource>,
pat_field_map_back: FxHashMap<PatId, PatFieldSource>,
template_map: Option<Box<FormatTemplate>>,
expansions: FxHashMap<InFile<MacroCallPtr>, MacroCallId>,
diagnostics: ThinVec<ExpressionStoreDiagnostics>,
}Fields§
§expr_map: FxHashMap<ExprSource, ExprOrPatIdPacked>§expr_map_back: ArenaMap<ExprId, ExprOrPatSource>§pat_map: FxHashMap<PatSource, ExprOrPatIdPacked>§pat_map_back: ArenaMap<PatId, ExprOrPatSource>§label_map: FxHashMap<LabelSource, LabelId>§label_map_back: ArenaMap<LabelId, LabelSource>§binding_definitions: ArenaMap<BindingId, SmallVec<[PatId; 4]>>§field_map_back: FxHashMap<ExprId, FieldSource>We don’t create explicit nodes for record fields (S { record_field: 92 }).
Instead, we use id of expression (92) to identify the field.
pat_field_map_back: FxHashMap<PatId, PatFieldSource>§template_map: Option<Box<FormatTemplate>>§expansions: FxHashMap<InFile<MacroCallPtr>, MacroCallId>§diagnostics: ThinVec<ExpressionStoreDiagnostics>Diagnostics accumulated during lowering. These contain AstPtrs and so are stored in
the source map (since they’re just as volatile).
Trait Implementations§
Source§impl Debug for ExpressionOnlySourceMap
impl Debug for ExpressionOnlySourceMap
Source§impl Default for ExpressionOnlySourceMap
impl Default for ExpressionOnlySourceMap
Source§fn default() -> ExpressionOnlySourceMap
fn default() -> ExpressionOnlySourceMap
Returns the “default value” for a type. Read more
impl Eq for ExpressionOnlySourceMap
Auto Trait Implementations§
impl Freeze for ExpressionOnlySourceMap
impl RefUnwindSafe for ExpressionOnlySourceMap
impl Send for ExpressionOnlySourceMap
impl Sync for ExpressionOnlySourceMap
impl Unpin for ExpressionOnlySourceMap
impl UnsafeUnpin for ExpressionOnlySourceMap
impl UnwindSafe for ExpressionOnlySourceMap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more