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

Emit a structured diagnostic.

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.

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

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.

Emit list of unused externs

Checks if should show explanations about “rustc –explain”

Checks if we can use colors in the current output stream.

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.

Convert DiagnosticMessages to a string, performing translation if necessary.

Convert a DiagnosticMessage to a string, performing translation if necessary.

Formats the substitutions of the primary_span

There are a lot of conditions to this method, but in short:

  • If the current Diagnostic has only one visible CodeSuggestion, we format the help suggestion depending on the content of the substitutions. In that case, we return the modified span only.

  • If the current Diagnostic has multiple suggestions, we return the original primary_span and the original suggestions.

Implementors