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 Handler
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
[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?