pub struct Lsp {
pub type_refs: GPooled<Vec<TypeRefSite>>,
pub sig_links: GPooled<Vec<SigImplLink>>,
pub module_internals: GPooled<Vec<ModuleInternalView>>,
}Expand description
IDE side-channels accumulated during compilation when lsp_mode is
on. Pushed to from places that hold &Env rather than threaded
through every typecheck signature, but tied to a specific Env via
the Arc<Mutex<Lsp>> field — so two unrelated compiles can’t
cross-pollute, and a multi-threaded compile is just a Mutex lock
away.
The runtime’s check installs a fresh Lsp at the start of each
check cycle and drains it at the end; non-LSP compiles leave
Env.lsp as None and pay nothing at the push sites.
Fields§
§type_refs: GPooled<Vec<TypeRefSite>>§sig_links: GPooled<Vec<SigImplLink>>§module_internals: GPooled<Vec<ModuleInternalView>>Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Lsp
impl !RefUnwindSafe for Lsp
impl Send for Lsp
impl Sync for Lsp
impl Unpin for Lsp
impl UnsafeUnpin for Lsp
impl !UnwindSafe for Lsp
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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