Trait rustc_errors::emitter::Emitter
source · [−]pub trait Emitter {
Show 18 methods
fn emit_diagnostic(&mut self, diag: &Diagnostic);
fn source_map(&self) -> Option<&Lrc<SourceMap>>;
fn fluent_bundle(&self) -> Option<&Lrc<FluentBundle>>;
fn fallback_fluent_bundle(&self) -> &FluentBundle;
fn emit_artifact_notification(&mut self, _path: &Path, _artifact_type: &str) { ... }
fn emit_future_breakage_report(&mut self, _diags: Vec<Diagnostic>) { ... }
fn emit_unused_externs(
&mut self,
_lint_level: Level,
_unused_externs: &[&str]
) { ... }
fn should_show_explain(&self) -> bool { ... }
fn supports_color(&self) -> bool { ... }
fn to_fluent_args<'arg>(
&self,
args: &[DiagnosticArg<'arg>]
) -> FluentArgs<'arg> { ... }
fn translate_messages(
&self,
messages: &[(DiagnosticMessage, Style)],
args: &FluentArgs<'_>
) -> Cow<'_, str> { ... }
fn translate_message<'a>(
&'a self,
message: &'a DiagnosticMessage,
args: &'a FluentArgs<'_>
) -> Cow<'_, str> { ... }
fn primary_span_formatted<'a>(
&mut self,
diag: &'a Diagnostic,
fluent_args: &FluentArgs<'_>
) -> (MultiSpan, &'a [CodeSuggestion]) { ... }
fn fix_multispans_in_extern_macros_and_render_macro_backtrace(
&self,
source_map: &Option<Lrc<SourceMap>>,
span: &mut MultiSpan,
children: &mut Vec<SubDiagnostic>,
level: &Level,
backtrace: bool
) { ... }
fn render_multispans_macro_backtrace(
&self,
span: &mut MultiSpan,
children: &mut Vec<SubDiagnostic>,
backtrace: bool
) { ... }
fn render_multispan_macro_backtrace(
&self,
span: &mut MultiSpan,
always_backtrace: bool
) { ... }
fn fix_multispans_in_extern_macros(
&self,
source_map: &Option<Lrc<SourceMap>>,
span: &mut MultiSpan,
children: &mut Vec<SubDiagnostic>
) { ... }
fn fix_multispan_in_extern_macros(
&self,
source_map: &Lrc<SourceMap>,
span: &mut MultiSpan
) { ... }
}Expand description
Emitter trait for emitting errors.
Required Methods
fn emit_diagnostic(&mut self, diag: &Diagnostic)
fn emit_diagnostic(&mut self, diag: &Diagnostic)
Emit a structured diagnostic.
fn source_map(&self) -> Option<&Lrc<SourceMap>>
fn fluent_bundle(&self) -> Option<&Lrc<FluentBundle>>
fn fluent_bundle(&self) -> Option<&Lrc<FluentBundle>>
Return FluentBundle with localized diagnostics for the locale requested by the user. If no
language was requested by the user then this will be None and fallback_fluent_bundle
should be used.
fn fallback_fluent_bundle(&self) -> &FluentBundle
fn fallback_fluent_bundle(&self) -> &FluentBundle
Return FluentBundle with localized diagnostics for the default locale of the compiler.
Used when the user has not requested a specific language or when a localized diagnostic is
unavailable for the requested locale.
Provided Methods
fn emit_artifact_notification(&mut self, _path: &Path, _artifact_type: &str)
fn emit_artifact_notification(&mut self, _path: &Path, _artifact_type: &str)
Emit a notification that an artifact has been output. This is currently only supported for the JSON format, other formats can, and will, simply ignore it.
fn emit_future_breakage_report(&mut self, _diags: Vec<Diagnostic>)
fn emit_unused_externs(&mut self, _lint_level: Level, _unused_externs: &[&str])
fn emit_unused_externs(&mut self, _lint_level: Level, _unused_externs: &[&str])
Emit list of unused externs
fn should_show_explain(&self) -> bool
fn should_show_explain(&self) -> bool
Checks if should show explanations about “rustc –explain”
fn supports_color(&self) -> bool
fn supports_color(&self) -> bool
Checks if we can use colors in the current output stream.
fn to_fluent_args<'arg>(&self, args: &[DiagnosticArg<'arg>]) -> FluentArgs<'arg>
fn to_fluent_args<'arg>(&self, args: &[DiagnosticArg<'arg>]) -> FluentArgs<'arg>
Convert diagnostic arguments (a rustc internal type that exists to implement
Encodable/Decodable) into FluentArgs which is necessary to perform translation.
Typically performed once for each diagnostic at the start of emit_diagnostic and then
passed around as a reference thereafter.
fn translate_messages(
&self,
messages: &[(DiagnosticMessage, Style)],
args: &FluentArgs<'_>
) -> Cow<'_, str>
fn translate_messages(
&self,
messages: &[(DiagnosticMessage, Style)],
args: &FluentArgs<'_>
) -> Cow<'_, str>
Convert DiagnosticMessages to a string, performing translation if necessary.
fn translate_message<'a>(
&'a self,
message: &'a DiagnosticMessage,
args: &'a FluentArgs<'_>
) -> Cow<'_, str>
fn translate_message<'a>(
&'a self,
message: &'a DiagnosticMessage,
args: &'a FluentArgs<'_>
) -> Cow<'_, str>
Convert a DiagnosticMessage to a string, performing translation if necessary.
fn primary_span_formatted<'a>(
&mut self,
diag: &'a Diagnostic,
fluent_args: &FluentArgs<'_>
) -> (MultiSpan, &'a [CodeSuggestion])
fn primary_span_formatted<'a>(
&mut self,
diag: &'a Diagnostic,
fluent_args: &FluentArgs<'_>
) -> (MultiSpan, &'a [CodeSuggestion])
Formats the substitutions of the primary_span
There are a lot of conditions to this method, but in short:
-
If the current
Diagnostichas only one visibleCodeSuggestion, we format thehelpsuggestion depending on the content of the substitutions. In that case, we return the modified span only. -
If the current
Diagnostichas multiple suggestions, we return the originalprimary_spanand the original suggestions.