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.