]> git.lizzy.rs Git - rust.git/blobdiff - src/libsyntax/diagnostics/macros.rs
Auto merge of #30641 - tsion:match-range, r=eddyb
[rust.git] / src / libsyntax / diagnostics / macros.rs
index 8c2d2a251aab86c5744c0d05083cb5151771f037..95a74d875545fcfeac1fd6ef15e10dbe06ab238a 100644 (file)
@@ -38,24 +38,72 @@ macro_rules! span_warn {
     })
 }
 
+#[macro_export]
+macro_rules! span_err_or_warn {
+    ($is_warning:expr, $session:expr, $span:expr, $code:ident, $($message:tt)*) => ({
+        __diagnostic_used!($code);
+        if $is_warning {
+            $session.span_warn_with_code($span, &format!($($message)*), stringify!($code))
+        } else {
+            $session.span_err_with_code($span, &format!($($message)*), stringify!($code))
+        }
+    })
+}
+
+#[macro_export]
+macro_rules! struct_span_fatal {
+    ($session:expr, $span:expr, $code:ident, $($message:tt)*) => ({
+        __diagnostic_used!($code);
+        $session.struct_span_fatal_with_code($span, &format!($($message)*), stringify!($code))
+    })
+}
+
+#[macro_export]
+macro_rules! struct_span_err {
+    ($session:expr, $span:expr, $code:ident, $($message:tt)*) => ({
+        __diagnostic_used!($code);
+        $session.struct_span_err_with_code($span, &format!($($message)*), stringify!($code))
+    })
+}
+
+#[macro_export]
+macro_rules! struct_span_warn {
+    ($session:expr, $span:expr, $code:ident, $($message:tt)*) => ({
+        __diagnostic_used!($code);
+        $session.struct_span_warn_with_code($span, &format!($($message)*), stringify!($code))
+    })
+}
+
+#[macro_export]
+macro_rules! struct_span_err_or_warn {
+    ($is_warning:expr, $session:expr, $span:expr, $code:ident, $($message:tt)*) => ({
+        __diagnostic_used!($code);
+        if $is_warning {
+            $session.struct_span_warn_with_code($span, &format!($($message)*), stringify!($code))
+        } else {
+            $session.struct_span_err_with_code($span, &format!($($message)*), stringify!($code))
+        }
+    })
+}
+
 #[macro_export]
 macro_rules! span_note {
-    ($session:expr, $span:expr, $($message:tt)*) => ({
-        ($session).span_note($span, &format!($($message)*))
+    ($err:expr, $span:expr, $($message:tt)*) => ({
+        ($err).span_note($span, &format!($($message)*));
     })
 }
 
 #[macro_export]
 macro_rules! span_help {
-    ($session:expr, $span:expr, $($message:tt)*) => ({
-        ($session).span_help($span, &format!($($message)*))
+    ($err:expr, $span:expr, $($message:tt)*) => ({
+        ($err).span_help($span, &format!($($message)*));
     })
 }
 
 #[macro_export]
 macro_rules! fileline_help {
-    ($session:expr, $span:expr, $($message:tt)*) => ({
-        ($session).fileline_help($span, &format!($($message)*))
+    ($err:expr, $span:expr, $($message:tt)*) => ({
+        ($err).fileline_help($span, &format!($($message)*));
     })
 }
 
@@ -73,5 +121,8 @@ macro_rules! register_diagnostics {
 macro_rules! register_long_diagnostics {
     ($($code:tt: $description:tt),*) => (
         $(register_diagnostic! { $code, $description })*
+    );
+    ($($code:tt: $description:tt),*,) => (
+        $(register_diagnostic! { $code, $description })*
     )
 }