macro_rules! forward {
    (
        $(#[$attrs:meta])*
        pub fn $n:ident(&mut self, $($name:ident: $ty:ty),* $(,)?) -> &mut Self
    ) => { ... };
}
Expand description

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.