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<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::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
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
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<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.