Diag impls many &mut self -> &mut Self methods. Each one modifies an
existing diagnostic, either in a standalone fashion, e.g.
err.code(code);, or in a chained fashion to make multiple modifications,
e.g. err.code(code).span(span);.
The main part of a diagnostic. Note that Diag, which wraps this type, is
used for most operations, and should be used instead whenever possible.
This type should only be used when Diag’s lifetime causes difficulties,
e.g. when storing diagnostics within DiagCtxt.
Simplified version of FluentValue that can implement Encodable and Decodable. Converted
to a FluentValue by the emitter to be used in diagnostic translation.
Converts a value of a type into a DiagArg (typically a field of an Diag struct).
Implemented as a custom trait rather than From so that it is implemented on the type being
converted rather than on DiagArgValue, which enables types from other rustc_* crates to
implement this.
Simplified version of FluentArg that can implement Encodable and Decodable. Collection of
DiagArg are converted to FluentArgs (consuming the collection) at the start of diagnostic
emission.