Module rustc_errors::diagnostic_builder [−][src]
Macros
In general, the DiagnosticBuilder
uses deref to allow access to
the fields and methods of the embedded diagnostic
in a
transparent way. However, many of the methods are intended to
be used in a chained way, and hence ought to return self
. In
that case, we can’t just naively forward to the method on the
diagnostic
, because the return type would be a &Diagnostic
instead of a &DiagnosticBuilder<'a>
. This forward!
macro makes
it easy to declare such methods on the builder.
Structs
Used for emitting structured error messages and other diagnostic information.
This is a large type, and often used as a return value, especially within
the frequently-used PResult
type. In theory, return value optimization
(RVO) should avoid unnecessary copying. In practice, it does not (at the
time of writing). The split between DiagnosticBuilder
and
DiagnosticBuilderInner
exists to avoid many memcpy
calls.