/// all, and you just supplied a `Span` to create the diagnostic,
/// then the snippet will just include that `Span`, which is
/// called the primary span.
- pub fn span_label<T: Into<String>>(&mut self, span: Span, label: T) -> &mut Self {
+ pub fn span_label(&mut self, span: Span, label: impl Into<String>) -> &mut Self {
self.0.diagnostic.span_label(span, label);
self
}
+ /// Labels all the given spans with the provided label.
+ /// See `span_label` for more information.
+ pub fn span_labels(
+ &mut self,
+ spans: impl IntoIterator<Item = Span>,
+ label: impl AsRef<str>,
+ ) -> &mut Self {
+ let label = label.as_ref();
+ for span in spans {
+ self.0.diagnostic.span_label(span, label);
+ }
+ self
+ }
+
forward!(pub fn note_expected_found(
&mut self,
expected_label: &dyn fmt::Display,
#[macro_export]
macro_rules! error_code {
- ($code:ident) => {{
- let _ = $code;
- $crate::DiagnosticId::Error(stringify!($code).to_owned())
- }};
+ ($code:ident) => {{ $crate::DiagnosticId::Error(stringify!($code).to_owned()) }};
}