Struct rustc_span::SessionGlobals
source · pub struct SessionGlobals {
pub(crate) symbol_interner: Interner,
pub(crate) span_interner: Lock<SpanInterner>,
pub(crate) hygiene_data: Lock<HygieneData>,
pub(crate) source_map: Lock<Option<Lrc<SourceMap>>>,
}
Expand description
Per-session global variables: this struct is stored in thread-local storage in such a way that it is accessible without any kind of handle to all threads within the compilation session, but is not accessible outside the session.
Fields§
§symbol_interner: Interner
§span_interner: Lock<SpanInterner>
§hygiene_data: Lock<HygieneData>
§source_map: Lock<Option<Lrc<SourceMap>>>
A reference to the source map in the Session
. It’s an Option
because it can’t be initialized until Session
is created, which
happens after SessionGlobals
. set_source_map
does the
initialization.
This field should only be used in places where the Session
is truly
not available, such as <Span as Debug>::fmt
.
Implementations§
source§impl SessionGlobals
impl SessionGlobals
pub fn new(edition: Edition) -> SessionGlobals
Auto Trait Implementations§
impl !RefUnwindSafe for SessionGlobals
impl !Send for SessionGlobals
impl !Sync for SessionGlobals
impl Unpin for SessionGlobals
impl !UnwindSafe for SessionGlobals
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
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: 432 bytes