Crate rustc_errors

source ·
Expand description

Diagnostics creation and emission for rustc.

This module contains the code for creating and emitting diagnostics.

Re-exports§

  • pub use emitter::ColorConfig;
  • pub use rustc_error_messages::fluent_bundle;
  • pub use codes::*;

Modules§

Macros§

Structs§

  • Marker type which enables implementation of create_bug and emit_bug functions for bug diagnostics.
  • A color specification.
  • A workaround for “good path” ICEs when formatting types in disabled lints.
  • Signifies that the compiler died with an explicit call to .delay_*_bug rather than a failed assertion, etc.
  • A DiagCtxt deals with errors and other compiler output. Certain errors (fatal, bug, unimpl) may cause immediate exit, others log errors for later reporting.
  • This inner struct exists to keep it all behind a single lock; this is done to prevent possible deadlocks in a multi-threaded compiler, as well as inconsistent state observation.
  • Used for emitting structured error messages and other diagnostic information. Each constructed DiagnosticBuilder must be consumed by a function such as emit, cancel, delay_as_bug, or into_diagnostic. A panic occurrs if a DiagnosticBuilder is dropped without being consumed by one of these functions.
  • Useful type to use with Result<> indicate that an error has already been reported to the user, so no need to continue checking.
  • Signifies that the compiler died with an explicit call to .bug or .span_bug rather than a failed assertion, etc.
  • Marker type which enables implementation of create_fatal and emit_fatal functions for fatal diagnostics.
  • Used as a return value to signify a fatal error occurred.
  • This is a marker for a fatal compiler error used with resume_unwind.
  • LanguageIdentifier is a core struct representing a Unicode Language Identifier.
  • A collection of Spans.
  • Utility struct used to apply a single label while highlighting multiple spans
  • A span together with some additional data.
  • A “sub”-diagnostic attached to a parent diagnostic. For example, a note attached to an error.
  • See the docs on CodeSuggestion::substitutions
  • Used to translate between Spans and byte positions within a single output line in highlighted code of structured suggestions.

Enums§

  • Indicates the confidence in the correctness of a suggestion.
  • The set of available colors for the terminal foreground/background.
  • Simplified version of FluentValue that can implement Encodable and Decodable. Converted to a FluentValue by the emitter to be used in diagnostic translation.
  • Abstraction over a message in a diagnostic to support both translatable and non-translatable diagnostic messages.
  • A key denoting where from a diagnostic was stashed.
  • Abstraction over a message in a subdiagnostic (i.e. label, note, help, etc) to support both translatable and non-translatable diagnostic messages.

Statics§

  • Raw content of Fluent resource for this crate, generated by fluent_messages macro, imported by rustc_driver to include all crates’ resources in one bundle.

Traits§

  • Trait implemented by error types. This should not be implemented manually. Instead, use #[derive(Subdiagnostic)] – see rustc_macros::Subdiagnostic.
  • Trait implemented by lint types. This should not be implemented manually. Instead, use #[derive(LintDiagnostic)] – see rustc_macros::LintDiagnostic.
  • Trait for types that DiagnosticBuilder::emit can return as a “guarantee” (or “proof”) token that the emission happened.
  • Trait implemented by error types. This is rarely implemented manually. Instead, use #[derive(Diagnostic)] – see rustc_macros::Diagnostic.
  • Converts a value of a type into a DiagnosticArg (typically a field of an IntoDiagnostic struct). Implemented as a custom trait rather than From so that it is implemented on the type being converted rather than on DiagnosticArgValue, which enables types from other rustc_* crates to implement this.
  • This trait describes the behavior of writers that support colored output.

Functions§

Type Aliases§

  • Simplified version of FluentArg that can implement Encodable and Decodable. Collection of DiagnosticArg are converted to FluentArgs (consuming the collection) at the start of diagnostic emission.
  • Name of a diagnostic argument.
  • Type alias for the result of fallback_fluent_bundle - a reference-counted pointer to a lazily evaluated fluent bundle.