Struct syntax::diagnostics::plugin::Handler [−][src]
pub struct Handler {
pub flags: HandlerFlags,
err_count: AtomicUsize,
emitter: Lock<Box<Emitter + 'static + Send>>,
continue_after_error: LockCell<bool>,
delayed_span_bugs: Lock<Vec<Diagnostic>>,
taught_diagnostics: Lock<HashSet<DiagnosticId, BuildHasherDefault<FxHasher>>>,
emitted_diagnostic_codes: Lock<HashSet<DiagnosticId, BuildHasherDefault<FxHasher>>>,
emitted_diagnostics: Lock<HashSet<u128, BuildHasherDefault<FxHasher>>>,
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
A handler deals with errors; certain errors (fatal, bug, unimpl) may cause immediate exit, others log errors for later reporting.
Fields
flags: HandlerFlags
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
err_count: AtomicUsize
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
emitter: Lock<Box<Emitter + 'static + Send>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
continue_after_error: LockCell<bool>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
delayed_span_bugs: Lock<Vec<Diagnostic>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
taught_diagnostics: Lock<HashSet<DiagnosticId, BuildHasherDefault<FxHasher>>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
emitted_diagnostic_codes: Lock<HashSet<DiagnosticId, BuildHasherDefault<FxHasher>>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Used to suggest rustc --explain
emitted_diagnostics: Lock<HashSet<u128, BuildHasherDefault<FxHasher>>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Methods
impl Handler[src]
impl Handlerpub fn with_tty_emitter(
color_config: ColorConfig,
can_emit_warnings: bool,
treat_err_as_bug: bool,
cm: Option<Rc<CodeMapper + 'static + Send + Sync>>
) -> Handler[src]
pub fn with_tty_emitter(
color_config: ColorConfig,
can_emit_warnings: bool,
treat_err_as_bug: bool,
cm: Option<Rc<CodeMapper + 'static + Send + Sync>>
) -> Handler🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn with_tty_emitter_and_flags(
color_config: ColorConfig,
cm: Option<Rc<CodeMapper + 'static + Send + Sync>>,
flags: HandlerFlags
) -> Handler[src]
pub fn with_tty_emitter_and_flags(
color_config: ColorConfig,
cm: Option<Rc<CodeMapper + 'static + Send + Sync>>,
flags: HandlerFlags
) -> Handler🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn with_emitter(
can_emit_warnings: bool,
treat_err_as_bug: bool,
e: Box<Emitter + 'static + Send>
) -> Handler[src]
pub fn with_emitter(
can_emit_warnings: bool,
treat_err_as_bug: bool,
e: Box<Emitter + 'static + Send>
) -> Handler🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn with_emitter_and_flags(
e: Box<Emitter + 'static + Send>,
flags: HandlerFlags
) -> Handler[src]
pub fn with_emitter_and_flags(
e: Box<Emitter + 'static + Send>,
flags: HandlerFlags
) -> Handler🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn set_continue_after_error(&self, continue_after_error: bool)[src]
pub fn set_continue_after_error(&self, continue_after_error: bool)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn reset_err_count(&self)[src]
pub fn reset_err_count(&self)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Resets the diagnostic error count as well as the cached emitted diagnostics.
NOTE: DO NOT call this function from rustc. It is only meant to be called from external
tools that want to reuse a Parser cleaning the previously emitted diagnostics as well as
the overall count of emitted error diagnostics.
pub fn struct_dummy(&'a self) -> DiagnosticBuilder<'a>[src]
pub fn struct_dummy(&'a self) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_warn<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_warn<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_warn_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_warn_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_warn(&'a self, msg: &str) -> DiagnosticBuilder<'a>[src]
pub fn struct_warn(&'a self, msg: &str) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_err<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_err<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_err_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_err_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_err(&'a self, msg: &str) -> DiagnosticBuilder<'a>[src]
pub fn struct_err(&'a self, msg: &str) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_err_with_code(
&'a self,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a>[src]
pub fn struct_err_with_code(
&'a self,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_fatal<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_fatal<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_span_fatal_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn struct_span_fatal_with_code<S>(
&'a self,
sp: S,
msg: &str,
code: DiagnosticId
) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn struct_fatal(&'a self, msg: &str) -> DiagnosticBuilder<'a>[src]
pub fn struct_fatal(&'a self, msg: &str) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn cancel(&self, err: &mut DiagnosticBuilder)[src]
pub fn cancel(&self, err: &mut DiagnosticBuilder)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_fatal<S>(&self, sp: S, msg: &str) -> FatalError where
S: Into<MultiSpan>, [src]
pub fn span_fatal<S>(&self, sp: S, msg: &str) -> FatalError where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_fatal_with_code<S>(
&self,
sp: S,
msg: &str,
code: DiagnosticId
) -> FatalError where
S: Into<MultiSpan>, [src]
pub fn span_fatal_with_code<S>(
&self,
sp: S,
msg: &str,
code: DiagnosticId
) -> FatalError where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_err<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, [src]
pub fn span_err<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn mut_span_err<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, [src]
pub fn mut_span_err<S>(&'a self, sp: S, msg: &str) -> DiagnosticBuilder<'a> where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_err_with_code<S>(&self, sp: S, msg: &str, code: DiagnosticId) where
S: Into<MultiSpan>, [src]
pub fn span_err_with_code<S>(&self, sp: S, msg: &str, code: DiagnosticId) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_warn<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, [src]
pub fn span_warn<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_warn_with_code<S>(&self, sp: S, msg: &str, code: DiagnosticId) where
S: Into<MultiSpan>, [src]
pub fn span_warn_with_code<S>(&self, sp: S, msg: &str, code: DiagnosticId) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_bug<S>(&self, sp: S, msg: &str) -> ! where
S: Into<MultiSpan>, [src]
pub fn span_bug<S>(&self, sp: S, msg: &str) -> ! where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn delay_span_bug<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, [src]
pub fn delay_span_bug<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_bug_no_panic<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, [src]
pub fn span_bug_no_panic<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_note_without_error<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, [src]
pub fn span_note_without_error<S>(&self, sp: S, msg: &str) where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_note_diag(&'a self, sp: Span, msg: &str) -> DiagnosticBuilder<'a>[src]
pub fn span_note_diag(&'a self, sp: Span, msg: &str) -> DiagnosticBuilder<'a>🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn span_unimpl<S>(&self, sp: S, msg: &str) -> ! where
S: Into<MultiSpan>, [src]
pub fn span_unimpl<S>(&self, sp: S, msg: &str) -> ! where
S: Into<MultiSpan>, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn failure(&self, msg: &str)[src]
pub fn failure(&self, msg: &str)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn fatal(&self, msg: &str) -> FatalError[src]
pub fn fatal(&self, msg: &str) -> FatalError🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn err(&self, msg: &str)[src]
pub fn err(&self, msg: &str)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn warn(&self, msg: &str)[src]
pub fn warn(&self, msg: &str)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn note_without_error(&self, msg: &str)[src]
pub fn note_without_error(&self, msg: &str)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn bug(&self, msg: &str) -> ![src]
pub fn bug(&self, msg: &str) -> !🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn unimpl(&self, msg: &str) -> ![src]
pub fn unimpl(&self, msg: &str) -> !🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn err_count(&self) -> usize[src]
pub fn err_count(&self) -> usize🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn has_errors(&self) -> bool[src]
pub fn has_errors(&self) -> bool🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn print_error_count(&self)[src]
pub fn print_error_count(&self)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn abort_if_errors(&self)[src]
pub fn abort_if_errors(&self)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn emit(&self, msp: &MultiSpan, msg: &str, lvl: Level)[src]
pub fn emit(&self, msp: &MultiSpan, msg: &str, lvl: Level)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn emit_with_code(
&self,
msp: &MultiSpan,
msg: &str,
code: DiagnosticId,
lvl: Level
)[src]
pub fn emit_with_code(
&self,
msp: &MultiSpan,
msg: &str,
code: DiagnosticId,
lvl: Level
)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn must_teach(&self, code: &DiagnosticId) -> bool[src]
pub fn must_teach(&self, code: &DiagnosticId) -> bool🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
true if we haven't taught a diagnostic with this code already.
The caller must then teach the user about such a diagnostic.
Used to suppress emitting the same error multiple times with extended explanation when
calling -Zteach.
pub fn force_print_db(&self, db: DiagnosticBuilder)[src]
pub fn force_print_db(&self, db: DiagnosticBuilder)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?