pub enum ErrorSource {
Compilation,
Lsp,
References,
Picker,
}Expand description
Which producer a run of error entries came from.
EP.1 (2026-08-10): the error list is shared by more than one producer, and a write replaces only its own source’s slice. Without the tag a write is a clobber: the language server republishes on every edit-debounce, so a live diagnostic feed would overwrite a compile run’s entries while the user is walking them.
Deliberately a small closed enum. A Plugin(id) variant lands with
the plugin path — the boundary currently refuses SetErrorList
outright, and tagging is the precondition for lifting that, not a
reason to speculate about the shape now.
See docs/dev/architecture/error-list.md §3.1.
Variants§
Compilation
lattice-compilation — :compile / :recompile output parsed
into entries.
Lsp
lattice-lsp — publishDiagnostics, coalesced.
References
lattice-lsp — reference sites from a textDocument/references
query. Not errors; the list is a navigable set of source
locations and fifteen call sites is exactly that. Opt-in via
lsp.references-to-error-list (default off) — see
error-list.md §3.2b.
Picker
LR.5 — the user sent a picker’s filtered results here with
<C-q> (telescope’s send_to_qflist). Deliberately ONE slice
for every picker: the defining fact is “I sent these”, not which
picker they came from, and a second <C-q> replaces the first
exactly as telescope’s does.
Implementations§
Source§impl ErrorSource
impl ErrorSource
Sourcepub const PRESENTATION_ORDER: [ErrorSource; 4]
pub const PRESENTATION_ORDER: [ErrorSource; 4]
Fixed presentation order. Slices concatenate in this order and each keeps its producer’s own ordering — producer order carries meaning (rustc emits the root cause ahead of the errors it cascades into), so sorting the merged list would destroy it.
Trait Implementations§
Source§impl Clone for ErrorSource
impl Clone for ErrorSource
Source§fn clone(&self) -> ErrorSource
fn clone(&self) -> ErrorSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ErrorSource
Source§impl Debug for ErrorSource
impl Debug for ErrorSource
Source§impl<'de> Deserialize<'de> for ErrorSource
impl<'de> Deserialize<'de> for ErrorSource
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ErrorSource, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ErrorSource, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for ErrorSource
Source§impl Hash for ErrorSource
impl Hash for ErrorSource
Source§impl PartialEq for ErrorSource
impl PartialEq for ErrorSource
Source§impl Serialize for ErrorSource
impl Serialize for ErrorSource
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ErrorSource
Auto Trait Implementations§
impl Freeze for ErrorSource
impl RefUnwindSafe for ErrorSource
impl Send for ErrorSource
impl Sync for ErrorSource
impl Unpin for ErrorSource
impl UnsafeUnpin for ErrorSource
impl UnwindSafe for ErrorSource
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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
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
§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> ⓘ
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> ⓘ
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