Private module for sealing the IsError helper trait.


forward 🔒
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.


Marker type which enables implementation of create_bug and emit_bug functions for bug struct diagnostics.
Used for emitting structured error messages and other diagnostic information.
This type exists only for DiagnosticBuilder::forget_guarantee, because it:
Marker type which enables implementation of create_note and emit_note functions for note-without-error struct diagnostics.



Trait for types that DiagnosticBuilder::emit can return as a “guarantee” (or “proof”) token that the emission happened.
Trait implemented by error types. This should not be implemented manually. Instead, use #[derive(Diagnostic)] – see rustc_macros::Diagnostic.